2014-12-11 30 views
6

To jest mój kod:Jak sformatować hiszpański miesiąc w zdaniu przypadku za pomocą SimpleDateFormat?

/* package whatever; // don't place package name! */ 

import java.util.*; 
import java.lang.*; 
import java.io.*; 
import java.text.SimpleDateFormat; 

/* Name of the class has to be "Main" only if the class is public. */ 
class Ideone 
{ 
    public static void main (String[] args) throws java.lang.Exception 
    { 
     SimpleDateFormat date = new SimpleDateFormat("dd-MMM-yyyy", new Locale("es","ar")); 
     System.out.println(date.format(new Date(2014-1900,0,1))); 
    } 
} 

Powyższe zwraca kod,

01-ene-2014 

Ale miesiąc powinno być w przypadku zdanie, tj Ene

Czy ktoś może mi pomóc w jaki sposób mogę uzyskać 01-Ene-2014 bez użycia podciągu?

Odpowiedz

11

To nie jest błąd.

SimpleDateFormat używa nazw miesięcy i wielkich liter zgodnie z lokalnymi regułami.

W języku angielskim liczba znaków appers z pierwszą literą, jak w angielskiej regule gramatyki jest obowiązkowa.

W języku hiszpańskim to nie to samo. Jest obowiązkowe używanie nazw miesięcy jako małych liter. Java używa lokalnych reguł. Te zasady dotyczące języka hiszpańskiego są zdefiniowane na przykład przez RAE (Królewska akademia języka hiszpańskiego)

Nie można również utworzyć niestandardowego ustawienia narodowego z własnymi regułami, ale można użyć klasy DateFormatSymbols, aby zastąpić nazwy miesięcy posiadać.

DateFormatSymbols sym = DateFormatSymbols.getInstance(baseLocale); 
sym.setShortMonths(new String[]{"Ene","Feb","Mar", /* and others */ }); 
new SimpleDateFormat(aPattern, sym); 

Pełny przykład: http://ideone.com/R7uoW0