1. DateTimeFormatter osztály
A speciális DateTimeFormatter
osztály megtalálta az utat a Date Time API-ban. Célja, hogy a programozók a lehető legkönnyebben konvertálhassák a dátumot és az időt a kívánt formátumra. Örömmel jelentjük, hogy a Java alkotóinak sikerült.
Használata nagyon egyszerű. Először is létre kell hoznia egy DateTimeFormatter
osztályt, és át kell adnia egy mintát, amely meghatározza, hogyan jelenítse meg a dátumot és az időt:
DateTimeFormatter dtf = DateTimeFormatter.ofPattern(pattern);
Hol dtf
van egy DateTimeFormatter
változó. az osztály statikus metódusa . A minta pedig egy karakterlánc, amely meghatározza a dátum és az idő megjelenítéséhez használt mintát.DateTimeFormatter.ofPattern()
DateTimeFormatter
Példák
Kód | Konzol kimenet |
---|---|
|
|
A fenti példában a módszert használjuk objektumok ofPattern()
létrehozására DateTimeFormatter
a minta alapján. A következő sorban pedig a format()
metódus segítségével alakítunk át egy LocalDateTime
objektumot stringgé. Az eredményt a képernyőn látja.
A Date Time API-ból szinte bármilyen objektumot átadhat a metódusnak format()
.
A statika ofPattern()
is nagyon egyszerű: egy mintát vesz fel argumentumként, és egy DateTimeFormatter
objektumot ad vissza. A legérdekesebb rész a mintában található.
2. Formázási minta
A mintaként átadott karakterláncot mintaként használják az információk megjelenítésekor. MM helyébe a hónap száma, dd a hónap napja, yy helyébe az év száma lép. A betűk nagybetűje számít.
Ezeknek az időmintáknak a teljes táblázata a következő:
Levél | Jelentése |
---|---|
y | Év |
M | Hónap |
d | Nap |
H | Órák |
m | Percek |
s | Másodpercek |
S | Ezredmásodperc |
n | Nanoszekundum. |
Nem különösebben nehéz megjegyezni.
De miért tartalmaz a példa mintája ismétlődő MM, dd és yy betűket? Nos, itt kezd érdekesebb lenni.
Alapgondolat
A betűk száma befolyásolja a szöveg hosszát. Minél több betű van, annál hosszabb lesz a szöveg.
Ha a H betűt egyszer adjuk meg, akkor a 9 óra 9-ként jelenik meg, de ha a H betűt kétszer adjuk meg egymás után, akkor a 9 óra 09-ként jelenik meg.
Ha az y betűt 2-szer egymás után adjuk meg, akkor az évet 2 számjeggyel írjuk. Ha egymás után 4-szer fordul elő, akkor 4 számjegyet kell használni.
Ha az M betűt kétszer egymás után adjuk meg, akkor a hónap száma kerül kiírásra. Ha 3-szor egymás után, akkor a hónap neve (az első 3 betűje) kerül felhasználásra. Ha 4-szer egymás után, akkor a hónap teljes neve kerül felhasználásra.
Példa:
Kód | Konzol kimenet |
---|---|
|
|
3. A minták teljes táblázata
A teljes táblázat meglehetősen nagy és rendkívül érdekes:
Minta | A minta variációi | Példa | Leírás |
---|---|---|---|
y | éééééé | 19; 2019 | Év |
M/L | M, MM, MMM, MMMM, MMMMM | 1; 01; Jan; Január; J | Hónap |
d | d, dd | 9; 09 | Nap |
H | H, HH | 2; 02 | Órák |
m | m, mm | 3; 03 | Percek |
s | s, ss | 5; 05 | Másodpercek |
S | S, SS, SSS, ... | 1; 12; 123 | Ezredmásodperc |
n | n | 123456789 | Nanoszekundum |
G | G, GGGG, GGGGG | HIRDETÉS; Időszámítás szerint; A; | Korszak |
Q/q | q, qq, qqq, qqqq | 3; 03; Q3; 3. negyed | Negyed |
w | w | 13 | Az év hete |
W | W | 3 | A hónap hete |
E | EEE, EEEE, EEEEE | H; Hétfő; M | A hét napja |
e/c | e, ee, eee, eee, eeeee | 1; 01; H; Hétfő; M | A hét napja |
a | a | DÉLUTÁN | Délelőtt vagy délután |
h | h | 12 | 12 órás óra. |
V | VV | Európa/Helsinki | Időzóna |
z | z zzzz | EET; Kelet-európai szabványidő | Időzóna |
O | Ó ÓÓÓ | GMT+2; GMT+02:00 | Időzóna |
Egyébként ez nem egy teljes verzió. A legteljesebb verziót itt találja .
4. Elemzési idő
Az DateTimeFormatter
osztály azért is érdekes, mert nem csak egy dátumot és időt tud adott minta szerint sztringgé alakítani, hanem a fordított műveletet is végrehajtja!
Egy karakterlánc elemzése azt a folyamatot jelenti, amely értelmes tokenekre bontja.
Így néz ki:
Kód | Konzol kimenet |
---|---|
|
|
Először létrehozunk egy DateTimeFormatter
objektumot, és beállítjuk az elemzéshez használt mintát.
Ezután meghívjuk az LocalDate.parse()
or LocalTime.parse()
or LocalDateTime.parse()
metódust, és átadjuk az elemezni kívánt karakterláncot az objektummal együtt DateTimeFormatter
, amely megérti, hogyan kell elemezni az átadott szöveget, és milyen mintát kell használni ehhez.
Egy másik példa: ezúttal az időt elemezzük.
Kód | Konzol kimenet |
---|---|
|
|
GO TO FULL VERSION