tl; dr
LocalDate.of( 2018 , Month.JANUARY , 23 )
.format( DateTimeFormatter.ofPattern( “uuuu-MM-EEE” , Locale.US ) )
java.time
Pendekatan modern menggunakan kelas java.time.
LocalDate ld = LocalDate.of( 2018 , Month.JANUARY , 23 ) ;
Perhatikan bagaimana kami menentukan Locale
seperti Locale.CANADA_FRENCH
untuk menentukan bahasa manusia yang digunakan untuk menerjemahkan nama hari itu.
DateTimeFormatter f = DateTimeFormatter.ofPattern( “uuuu-MM-EEE” , Locale.US ) ;
String output = ld.format( f ) ;
ISO 8601
By the way, Anda mungkin akan tertarik dalam standar ISO 8601 minggu skema penomoran: yyyy-Www-d
.
2018-W01-2
Minggu # 1 memiliki hari Kamis pertama dalam satu tahun kalender. Minggu dimulai pada hari Senin. Setahun memiliki 52 atau 53 minggu. Beberapa hari terakhir / pertama dalam satu tahun kalender mungkin mendarat di tahun berbasis minggu berikutnya / sebelumnya.
Digit tunggal di akhir adalah hari dalam seminggu, 1-7 untuk Senin-Minggu.
Tambahkan kelas perpustakaan ThreeTen-Extra ke proyek Anda untuk YearWeek
kelas tersebut.
Tentang java.time
The java.time kerangka dibangun ke Jawa 8 dan kemudian. Kelas-kelas ini menggantikan tua merepotkan warisan kelas tanggal-waktu seperti java.util.Date
, Calendar
, & SimpleDateFormat
.
Proyek Joda-Time , sekarang dalam mode pemeliharaan , menyarankan migrasi ke kelas java.time .
Untuk mempelajari lebih lanjut, lihat Tutorial Oracle . Dan cari Stack Overflow untuk banyak contoh dan penjelasan. Spesifikasinya adalah JSR 310 .
Di mana mendapatkan kelas java.time?
Proyek ThreeTen-Extra memperluas java.time dengan kelas tambahan. Proyek ini adalah tempat pembuktian untuk kemungkinan penambahan java.time di masa mendatang. Anda mungkin menemukan beberapa kelas berguna di sini seperti Interval
, YearWeek
, YearQuarter
, dan lebih .
dd
sebagai format?