tl; dr
LocalDate.of( 2018 , Month.JANUARY , 23 )
.format( DateTimeFormatter.ofPattern( “uuuu-MM-EEE” , Locale.US ) )
java.time
Der moderne Ansatz verwendet die Klassen java.time.
LocalDate ld = LocalDate.of( 2018 , Month.JANUARY , 23 ) ;
Beachten Sie, wie wir angeben Locale, wie Locale.CANADA_FRENCHdie menschliche Sprache zu bestimmen , verwendet , um den Namen des Tages zu übersetzen.
DateTimeFormatter f = DateTimeFormatter.ofPattern( “uuuu-MM-EEE” , Locale.US ) ;
String output = ld.format( f ) ;
ISO 8601
Übrigens könnte Sie das Standard- Wochennummerierungsschema ISO 8601 interessieren : yyyy-Www-d.
2018-W01-2
Woche 1 hat den ersten Donnerstag des Kalenderjahres. Die Woche beginnt an einem Montag. Ein Jahr hat entweder 52 oder 53 Wochen. Die letzten / ersten Tage eines Kalenderjahres können im nächsten / vorherigen wochenbasierten Jahr landen.
Die einzelne Ziffer am Ende ist Wochentag, 1-7 für Montag-Sonntag.
Fügen Sie Ihrem Projekt die ThreeTen-Extra- Bibliotheksklasse für die YearWeekKlasse hinzu.
Über java.time
Das java.time- Framework ist in Java 8 und höher integriert. Diese Klassen verdrängen die lästigen alten Legacy - Datum-Zeit - Klassen wie java.util.Date, Calendar, & SimpleDateFormat.
Das Joda-Time- Projekt, das sich jetzt im Wartungsmodus befindet , empfiehlt die Migration zu den Klassen java.time .
Weitere Informationen finden Sie im Oracle-Lernprogramm . Suchen Sie im Stapelüberlauf nach vielen Beispielen und Erklärungen. Die Spezifikation ist JSR 310 .
Woher bekomme ich die java.time-Klassen?
Das ThreeTen-Extra- Projekt erweitert java.time um zusätzliche Klassen. Dieses Projekt ist ein Testfeld für mögliche zukünftige Ergänzungen von java.time. Sie können einige nützliche Klassen hier wie finden Interval, YearWeek, YearQuarter, und mehr .
ddals Format zu verwenden?