ТЛ; др
DateTimeFormatter.ofLocalizedDateTime( FormatStyle.FULL )
.withLocale( Locale.CANADA_FRENCH );
java.time
Оригинальные классы даты и времени теперь унаследованы и заменены классами java.time.
DateTimeFormatter
имеет простой способ автоматической локализации с помощью Locale
при генерации строки для представления значения даты и времени. Укажите FormatStyle
, чтобы указать длину вывода (сокращенно или нет).
DateTimeFormatter f = DateTimeFormatter.ofLocalizedDateTime( FormatStyle.FULL );
f = f.withLocale( Locale.CANADA_FRENCH );
Получить текущий момент. Обратите внимание, что Locale
и часовой пояс не имеют ничего общего друг с другом. Один определяет представление, другой настраивается на определенное время настенных часов . Таким образом, у вас может быть часовой пояс в Новой Зеландии с Locale
японским языком, или в этом случае часовой пояс в Индии с презентацией, отформатированной для чтения квебекской персоной.
ZoneId z = ZoneId.of( "Asia/Kolkata" );
ZonedDateTime zdt = ZonedDateTime.now( z );
Генерация строки с использованием этого локализующего объекта форматера.
String output = zdt.format( f );
О java.time
Фреймворк java.time встроен в Java 8 и более поздние версии. Эти классы заменяют проблемные старые устаревшие классы даты и времени, такие как java.util.Date
, Calendar
, & SimpleDateFormat
Проект Joda-Time , теперь в режиме обслуживания , рекомендует перейти на классы java.time .
Чтобы узнать больше, см. Oracle Tutorial . И поиск переполнения стека для многих примеров и объяснений. Спецификация JSR 310 .
Где получить классы java.time?
Проект ThreeTen-Extra расширяет java.time дополнительными классами. Этот проект является полигоном для возможных будущих дополнений к java.time. Здесь вы можете найти некоторые полезные классы, такие как Interval
, YearWeek
, YearQuarter
и more .