Я пишу многоязычную Программу, и я установил свои локали для страновых (например, de_AT, de_DE, en_US, en_GB). Поэтому, если я позвоню DateFormat.getDateInstance(int fomat,Locale l)
, я всегда получу английский! Это работает, если я использую только язык (например, En, de, ...)
Я просмотрел Oracle Doc of DateFormat , но также с их примерами возникает ошибка.
Вот пример программы:
import java.text.DateFormat;
import java.util.Locale;
import java.util.Date;
public class DateFormatTest {
public static void main(String args[]){
Locale[] locales={new Locale("de_AT"),new Locale("de_DE"), new Locale("de"), new Locale("en_US"), new Locale("en"), new Locale("fr_FR"), new Locale("fr_CA"), new Locale("fr")};
Date today= new Date();
for(Locale l: locales){
System.out.println(l.toString()+"\t"+
DateFormat.getDateInstance(DateFormat.DEFAULT,l).format(today)+"\t"+
DateFormat.getDateInstance(DateFormat.FULL,l).format(today));
}
}
}
Это вывод:
huwa@hubefl-ws:~/tmp$ javac DateFormatTest.java
huwa@hubefl-ws:~/tmp$ java DateFormatTest
de_at Nov 8, 2011 Tuesday, November 8, 2011
de_de Nov 8, 2011 Tuesday, November 8, 2011
de 08.11.2011 Dienstag, 8. November 2011
en_us Nov 8, 2011 Tuesday, November 8, 2011
en Nov 8, 2011 Tuesday, November 8, 2011
fr_fr Nov 8, 2011 Tuesday, November 8, 2011
fr_ca Nov 8, 2011 Tuesday, November 8, 2011
fr 8 nov. 2011 mardi 8 novembre 2011
У кого-нибудь есть такая же проблема? Есть ли решение?