Отображение даты в разных локалях на Java? - PullRequest
7 голосов
/ 29 января 2009

Как в java отображать даты в разных локалях (например, на русском).

Ответы [ 5 ]

14 голосов
/ 29 января 2009

Что-то вроде:

Locale locale = new Locale("ru","RU");
DateFormat full = DateFormat.getDateInstance(DateFormat.LONG, locale);
out.println(full.format(new Date()));

Должен сделать свое дело. Однако возникла проблема с русским форматированием даты в jdk1.5

Проблема с русским языком заключается в том, что названия месяцев имеют разные суффиксы, когда они представлены отдельно (то есть в списке или чем-то еще), и еще один, когда они являются частью форматированной даты. Таким образом, несмотря на то, что март - это «Март» на русском языке, правильно отформатированная сегодняшняя дата будет выглядеть так: «7 Март а 2007 г.»

Давайте посмотрим, как JDK форматирует сегодняшнюю дату: 7 Март 2007 г. Совершенно неправильно.

5 голосов
/ 29 января 2009

Используйте конструктор SimpleDateFormat, который принимает локаль. Сначала вам нужно проверить, поддерживает ли JDK локаль, которую вы ищете, если нет, то вам нужно реализовать это.

4 голосов
/ 29 января 2009

Используйте класс java.text.DateFormat, вы можете создать его для определенной локали.

DateFormat format = DateFormat.getDateInstance(DateFormat.MEDIUM, theLocaleYouWant);
String text = format.format(new Date());
System.out.println(text);
3 голосов
/ 29 января 2009

Класс DateFormat может вам помочь. Как объяснено в Javadoc:

Чтобы форматировать дату для другого Локаль, укажите это в звонке getDateInstance ().

DateFormat df = DateFormat.getDateInstance(DateFormat.LONG, Locale.FRANCE);

Так что вам просто нужно адаптировать этот код с помощью соответствующей локали.

0 голосов
/ 29 января 2009

Используйте java.util.Calendar с соответствующим часовым поясом и языковым стандартом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...