Pretvori između niza i vremenske oznake
1. Pregled
Vremenska oznaka je jedan od rijetkih naslijeđenih objekata datuma i vremena na Javi.
U ovom uputstvu vidjet ćemo kako se raščlaniti iz a Niz vrijednost prema a Vremenska oznaka objekt i kako formatirati Vremenska oznaka prigovoriti a Niz.
I od Vremenska oznaka oslanja se na Java-zaštićeni format, vidjet ćemo kako se učinkovito prilagoditi.
2. Analizirajte a Niz do a Vremenska oznaka
2.1. Standardni format
Najjednostavniji način raščlanjivanja a Niz do a Vremenska oznaka je svoje vrijednost metoda:
Timestamp.valueOf ("2018-11-12 01: 02: 03.123456789")
A kad naš Niz je u formatu vremenske oznake JDBC - gggg-m [m] -d [d] hh: mm:ss[.f…] - onda je prilično jednostavno.
Taj obrazac možemo protumačiti ovako:
Uzorak | Opis | Primjer |
---|---|---|
yyyy | Predstavlja godinu i za nju je obavezno imati četiri znamenke. | 2018 |
m [m] | Za mjesečnu komponentu moramo imati jednu ili dvije znamenke (od 1 do 12). | 1, 11 |
dd] | Za vrijednost u mjesecu moramo imati jednu ili dvije znamenke (od 1 do 31). | 7, 12 |
hh | Označava sat u danu, s dopuštenim vrijednostima od 0 do 23. | 01, 16 |
mm | Stoji nekoliko minuta sata, s dopuštenim vrijednostima od 0 do 59. | 02, 45 |
ss | Stoji sekunde u minuti, s dopuštenim vrijednostima od 0 do 59. | 03, 52 |
[.f…] | Predstavlja neobavezne djeliće sekunde, može biti precizna do nanosekundi, tako da su dopuštene vrijednosti od 0 do 999999999. | 12, 1567, 123456789 |
2.2. Alternativni formati
Ako nije u formatu vremenske oznake JDBC, na sreću, vrijednost također uzima a LocalDateTime primjer.
To znači da možemo uzeti datum u bilo kojem formatu, samo ga prvo moramo pretvoriti u LocalDateTime:
Uzorak niza = "MMM dd, gggg HH: mm: ss.SSSSSSSS"; String timestampAsString = "12. studenog 2018. 13: 02: 56,12345678"; DateTimeFormatter formatter = DateTimeFormatter.ofPattern (uzorak); LocalDateTime localDateTime = LocalDateTime.from (formatter.parse (timestampAsString));
A onda možemo koristiti vrijednost radili smo prije:
Vremenska oznaka vremenska oznaka = Timestamp.valueOf (localDateTime); assertEquals ("2018-11-12 13: 02: 56.12345678", timestamp.toString ());
Imajte na umu da, za razliku od a Datum objekt, a Vremenska oznaka objekt može pohraniti djeliće sekunde.
3. Format a Vremenska oznaka kao Niz
Za formatiranje a Vremenska oznaka, imat ćemo isti izazov jer je zadani format vlasnički format vremenske oznake JDBC:
assertEquals ("2018-11-12 13: 02: 56.12345678", timestamp.toString ());
Ali, opet, pomoću posredničke pretvorbe možemo oblikovati rezultirajuće Niz na drugačiji obrazac datuma i vremena, poput ISO-8601 standarda:
Vremenska oznaka vremenska oznaka = Timestamp.valueOf ("2018-12-12 01: 02: 03.123456789"); DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME; String timestampAsString = formatter.format (timestamp.toLocalDateTime ()); assertEquals ("2018-12-12T01: 02: 03.123456789", timestampAsString);
4. Zaključak
U ovom smo članku vidjeli kako pretvoriti između Niz i Vremenska oznaka objekti u Javi. Također, vidjeli smo kako se koristi LocalDateTime pretvorba kao posrednički korak kako bi se pretvorili u različite obrasce datuma i vremena i iz njih.
I obavezno pronađite sve ove primjere i isječke na GitHubu.