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_FRENCH
die 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 YearWeek
Klasse 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 .
dd
als Format zu verwenden?