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 Localeseperti Locale.CANADA_FRENCHuntuk 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 YearWeekkelas 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 .
ddsebagai format?