тл; д-р
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-ExtraYearWeek .
Про java.time
Java.time каркас вбудований в Java 8 і пізніших версій. Ці класи витісняти неприємні старі застарілі класи дати і часу , такі як java.util.Date, Calendar, і SimpleDateFormat.
Проект Joda-Time , який зараз знаходиться в режимі обслуговування , радить перейти до класів java.time .
Щоб дізнатися більше, дивіться навчальний посібник Oracle . І шукайте переповнення стека за багатьма прикладами та поясненнями. Специфікація - JSR 310 .
Де отримати класи java.time?
Проект ThreeTen-Extra розширює java.time додатковими класами. Цей проект є доказом можливих майбутніх доповнень до java.time. Ви можете знайти деякі корисні класи тут , такі як Interval, YearWeek, YearQuarter, і більш .
ddяк формату?