ТЛ; др
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 . И поищите в Stack Overflow множество примеров и объяснений. Спецификация - JSR 310 .
Где взять классы java.time?
Проект ThreeTen-Extra расширяет java.time дополнительными классами. Этот проект является испытательной площадкой для возможных будущих дополнений к java.time. Вы можете найти некоторые полезные классы здесь , такие как Interval
, YearWeek
, YearQuarter
, и более .
dd
как формат?