1. DateTimeFormatter-Klasse
Die spezielle DateTimeFormatter
Klasse findet Eingang in die Date Time API. Sein Zweck besteht darin, es Programmierern so einfach wie möglich zu machen, ein Datum und eine Uhrzeit genau in das gewünschte Format zu konvertieren. Und wir freuen uns, Ihnen mitteilen zu können, dass es den Entwicklern von Java gelungen ist.
Die Verwendung ist sehr einfach. Zuerst müssen Sie eine Klasse erstellen DateTimeFormatter
und ein Muster übergeben, das angibt, wie Datum und Uhrzeit angezeigt werden:
DateTimeFormatter dtf = DateTimeFormatter.ofPattern(pattern);
Wo dtf
ist eine DateTimeFormatter
Variable? ist eine statische Methode der Klasse. Und „Muster“ ist eine Zeichenfolge, die das Muster angibt, das zur Anzeige von Datum und Uhrzeit verwendet wird.DateTimeFormatter.ofPattern()
DateTimeFormatter
Beispiele
Code | Konsolenausgabe |
---|---|
|
|
Im obigen Beispiel verwenden wir die ofPattern()
Methode, um ein DateTimeFormatter
Objekt basierend auf dem Muster zu erstellen. Und in der nächsten Zeile verwenden wir die format()
Methode, um ein Objekt in einen String umzuwandeln LocalDateTime
. Das Ergebnis sehen Sie auf dem Bildschirm.
Sie können fast jedes Objekt von der Date Time API an die format()
Methode übergeben.
Auch die Statik ofPattern()
ist sehr einfach: Sie nimmt ein Muster als Argument und gibt ein DateTimeFormatter
Objekt zurück. Der interessanteste Teil ist im Muster zu finden.
2. Formatierungsmuster
Die als Muster übergebene Zeichenfolge wird bei der Anzeige von Informationen als Muster verwendet. MM wird durch die Zahl des Monats, dd durch den Tag des Monats und yy durch die Zahl des Jahres ersetzt. Auf die Groß-/Kleinschreibung der Buchstaben kommt es an.
Die vollständige Tabelle für diese Zeitmuster lautet wie folgt:
Brief | Bedeutung |
---|---|
j | Jahr |
M | Monat |
D | Tag |
H | Std |
M | Protokoll |
S | Sekunden |
S | Tausendstelsekunden |
N | Nanosekunden. |
Nicht besonders schwer zu merken.
Aber warum enthält das Muster im Beispiel die wiederholten Buchstaben MM, dd und yy? Nun, hier wird es interessanter.
Grund Idee
Die Anzahl der Buchstaben beeinflusst die Länge des Textes. Je mehr Buchstaben vorhanden sind, desto länger wird der Text.
Wenn der Buchstabe H einmal angegeben wird, werden 9 Stunden als 9 angezeigt. Wenn der Buchstabe H jedoch zweimal hintereinander angegeben wird, werden 9 Stunden als 09 angezeigt.
Wenn der Buchstabe y zweimal hintereinander angegeben wird, wird die Jahreszahl zweistellig geschrieben. Wenn es 4 Mal hintereinander vorkommt, werden 4 Ziffern verwendet.
Wird der Buchstabe M 2x hintereinander angegeben, so wird die Zahl des Monats geschrieben. Wenn dreimal hintereinander, wird der Name des Monats (seine ersten drei Buchstaben) verwendet. Bei 4-mal hintereinander wird der vollständige Name des Monats verwendet.
Beispiel:
Code | Konsolenausgabe |
---|---|
|
|
3. Vollständige Mustertabelle
Die vollständige Tabelle ist ziemlich umfangreich und super interessant:
Muster | Variationen des Musters | Beispiel | Beschreibung |
---|---|---|---|
j | jj, jjjj | 19; 2019 | Jahr |
M/L | M, MM, MMM, MMMM, MMMMM | 1; 01; Jan; Januar; J | Monat |
D | d, dd | 9; 09 | Tag |
H | H, HH | 2; 02 | Std |
M | m, mm | 3; 03 | Protokoll |
S | s, ss | 5; 05 | Sekunden |
S | S, SS, SSS, ... | 1; 12; 123 | Tausendstelsekunden |
N | N | 123456789 | Nanosekunden |
G | G, GGGGG, GGGGG | ANZEIGE; Anno Domini; A; | Epoche |
F/q | q, qq, qqq, qqqq | 3; 03; Q3; 3. Viertel | Quartal |
w | w | 13 | Woche des Jahres |
W | W | 3 | Woche des Monats |
E | EEE, EEEEE, EEEEE | Mo; Montag; M | Wochentag |
e/c | e, ee, eee, eeee, eeeee | 1; 01; Mo; Montag; M | Wochentag |
A | A | PN | Vormittags oder nachmittags |
H | H | 12 | 12-Stunden-Uhr. |
V | VV | Europa/Helsinki | Zeitzone |
z | zzzzz | OSTEUROPÄISCHE ZEIT, ELEKTRONISCHER ENERGIETRANSFER, VORAUSSICHTLICHE FLUGDAUER; Osteuropäische Standardzeit | Zeitzone |
Ö | O OOOO | GMT+2; GMT+02:00 | Zeitzone |
Übrigens ist dies keine vollständige Version. Die vollständigste Version finden Sie hier .
4. Parsing-Zeit
Interessant ist die DateTimeFormatter
Klasse auch wegen ihrer Fähigkeit, nicht nur ein Datum und eine Uhrzeit nach einem vorgegebenen Muster in einen String umzuwandeln, sondern auch den umgekehrten Vorgang durchzuführen!
Beim Parsen einer Zeichenfolge wird sie in sinnvolle Token aufgeteilt.
So sieht es aus:
Code | Konsolenausgabe |
---|---|
|
|
Zuerst erstellen wir ein DateTimeFormatter
Objekt und legen das Muster fest, das zum Parsen verwendet wird.
Dann rufen wir die Methode LocalDate.parse()
or LocalTime.parse()
oder LocalDateTime.parse()
auf und übergeben die zu analysierende Zeichenfolge zusammen mit dem DateTimeFormatter
Objekt, das versteht, wie der übergebene Text analysiert werden soll und welches Muster dafür verwendet werden soll.
Ein weiteres Beispiel: Dieses Mal analysieren wir die Zeit.
Code | Konsolenausgabe |
---|---|
|
|