Как в java отображать даты в разных локалях (например, на русском).
Что-то вроде:
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 г. Совершенно неправильно.
Проблема с русским языком заключается в том, что названия месяцев имеют разные суффиксы, когда они представлены отдельно (то есть в списке или чем-то еще), и еще один, когда они являются частью форматированной даты. Таким образом, несмотря на то, что март - это «Март» на русском языке, правильно отформатированная сегодняшняя дата будет выглядеть так: «7 Март а 2007 г.»
Давайте посмотрим, как JDK форматирует сегодняшнюю дату: 7 Март 2007 г. Совершенно неправильно.
Используйте конструктор SimpleDateFormat, который принимает локаль. Сначала вам нужно проверить, поддерживает ли JDK локаль, которую вы ищете, если нет, то вам нужно реализовать это.
Используйте класс java.text.DateFormat, вы можете создать его для определенной локали.
DateFormat format = DateFormat.getDateInstance(DateFormat.MEDIUM, theLocaleYouWant); String text = format.format(new Date()); System.out.println(text);
Класс DateFormat может вам помочь. Как объяснено в Javadoc:
Чтобы форматировать дату для другого Локаль, укажите это в звонке getDateInstance (). DateFormat df = DateFormat.getDateInstance(DateFormat.LONG, Locale.FRANCE);
Чтобы форматировать дату для другого Локаль, укажите это в звонке getDateInstance ().
DateFormat df = DateFormat.getDateInstance(DateFormat.LONG, Locale.FRANCE);
Так что вам просто нужно адаптировать этот код с помощью соответствующей локали.
Используйте java.util.Calendar с соответствующим часовым поясом и языковым стандартом.