Интернационализация Java - PullRequest
1 голос
/ 27 марта 2011

Есть ли способ перезаписать значения по умолчанию для интернационализации?

Пример, если я получу дату в формате EEEE, она даст мне Воскресенье , но я хочу что-то вроде Солнечный день .

"EEEE, dd MMM, yyyy" даст мнеВоскресенье, 27 марта 2011 г.

я хочу "EEEE, dd MMM, yyyy" дай мне солнечный день, 27 марта 2011 г.

Ответы [ 2 ]

3 голосов
/ 27 марта 2011

Строки, используемые DateFormat, определяются объектом класса DateFormatSymbols, который имеет setXXX методы. Итак, вы можете попробовать это:

 DateFormatSymbols englishSymbols = DateFormatSymbols.getInstance(Locale.ENGLISH);
 DateFormatSymbols mySymbols = (DateFormatSymbols)englishSymbols.clone();
 String[] weekdays = mySymbols.getWeekdays();
 weekdays[Calendar.SUNDAY] = "Sunnyday";
 mySymbols.setWeekdays(weekdays);
 DateFormat f = new SimpleDateFormat("EEEE, dd MMM, yyyy", mySymbols);

 System.out.println(f.format(new Date()));

Это показывает для меня: Sunnyday, 27 Mar, 2011.

1 голос
/ 27 марта 2011

Вы должны установить локаль, это пример для Франции:

Locale frLocale = new Locale("fr", "FR");
SimpleDateFormat formatter = new SimpleDateFormat("EEE d MMM yy", frLocale);
Date today = new Date();
String output = formatter.format(today);
System.out.println(output);

Выход: Диманш 27 Марс 11

Или, если хотите, иметь собственные имена:

String[] monthNames = {"cold January", "warm February" ...};     
Calendar cal = Calendar.getInstance();
String month = monthName[cal.get(Calendar.MONTH)];     
System.out.println("Month name: " + month);
...