ТЛ; др
LocalDate.of( 2018 , Month.JANUARY , 23 )
.format( DateTimeFormatter.ofPattern( “uuuu-MM-EEE” , Locale.US ) )
java.time
Современный подход использует классы java.time.
LocalDate ld = LocalDate.of( 2018 , Month.JANUARY , 23 ) ;
Обратите внимание, как мы указываем Locale
, например, Locale.CANADA_FRENCH
, чтобы определить человеческий язык, используемый для перевода названия дня.
DateTimeFormatter f = DateTimeFormatter.ofPattern( “uuuu-MM-EEE” , Locale.US ) ;
String output = ld.format( f ) ;
ISO 8601
Кстати, вас может заинтересовать стандартная ISO 8601 неделя схема нумерации: yyyy-Www-d
.
2018-W01-2
Неделя № 1 имеет первый четверг календарного года. Неделя начинается в понедельник. В году 52 или 53 недели. Последние / первые несколько дней календарного года могут приземляться в следующем / предыдущем недельном году.
Единственная цифра в конце - день недели, 1-7 для понедельника-воскресенья.
Добавьте класс библиотеки ThreeTen-Extra в свой проект для класса YearWeek
.
О 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 .