тл; д-р
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
як формату?