Мне нужно форматировать дату для приложения с множеством языков, что лучше всего подходит для форматирования даты, потому что у каждой страны есть формат форматирования даты, поэтому можно ли форматировать дату по языку?
Как я могу форматировать дату по языку в Java?
Ответ 1
Да, используя DateFormat.getDateInstance(int style, Locale aLocale) Это отображает текущую дату по языковому признаку.
Итак, например:
DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, yourLocale);
String formattedDate = df.format(yourDate);
См. документы для точного значения параметра стиля (SHORT
, MEDIUM
и т.д.)
Ответ 2
У SimpleDateFormat есть конструктор, который принимает локаль, вы пробовали это?
http://java.sun.com/javase/6/docs/api/java/text/SimpleDateFormat.html
Что-то вроде
new SimpleDateFormat("your-pattern-here", Locale.getDefault());
Ответ 3
Joda времени
Используя библиотеку Joda-Time 2.4. Класс DateTimeFormat
представляет собой factory форматов DateTimeFormatter
. Этот класс предлагает метод forStyle
для доступа к форматировщикам, соответствующим Locale
.
DateTimeFormatter formatter = DateTimeFormat.forStyle( "MM" ).withLocale( Java.util.Locale.CANADA_FRENCH );
String output = formatter.print( DateTime.now( DateTimeZone.forID( "America/Montreal" ) ) );
Аргумент с двумя буквами указывает формат для части даты и временной части. Укажите символ "S" для короткого стиля, "M" для носителя, "L" для длинных и "F" для заполнения. Дата или время можно опустить, указав символ стиля "-" HYPHEN.
Обратите внимание, что мы указали как локаль, так и часовой пояс. Некоторые люди путают этих двух.
- Часовой пояс является смещением от UTC и набором правил для летнего времени и других аномалий вместе с их историческими изменениями.
- Язык - это человеческий язык, такой как Français, а также код страны, такой как Канада, который представляет культурные практики, включая форматирование строк даты.
Нам нужны все эти части, чтобы правильно генерировать строковое представление значения даты и времени.
Ответ 4
Посмотрите java.text.DateFormat. Легче использовать (с меньшим энергопотреблением) - производный класс, java.text.SimpleDateFormat
И вот хорошее введение в интернационализацию Java: http://java.sun.com/docs/books/tutorial/i18n/index.html (раздел "Форматирование", посвященный вашей проблеме, и многое другое).
Ответ 5
Я согласен с Laura и SimpleDateFormat, который является лучшим способом управления датами в java. Вы можете установить шаблон и локаль. Кроме того, вы можете взглянуть на эту статью статью в Википедии о дате в мире - существует не так много разных способов ее использования; обычно США/Китай/остальной мир -