Konvertálás a karakterlánc és az időbélyeg között
1. Áttekintés
Időbélyeg egyike a Java néhány régi dátum-idő objektumának.
Ebben az oktatóanyagban megtudjuk, hogyan kell elemezni a Húr érték a Időbélyeg objektum és hogyan formázza a Időbélyeg kifogásolni a Húr.
És azóta Időbélyeg Java-szabadalmaztatott formátumra támaszkodik, meglátjuk, hogyan lehet hatékonyan alkalmazkodni.
2. Elemzés a Húr a Időbélyeg
2.1. Normál formátum
A legegyszerűbb elemzési módszer a Húr a Időbélyeg az övé értéke módszer:
Timestamp.valueOf ("2018-11-12 01: 02: 03.123456789"
És amikor a mi Húr JDBC időbélyeg formátumban van - éééé-h [m] -d [d] óó: mm:ss[.f…] - akkor elég egyszerű.
Ezt a mintát így értelmezhetjük:
Minta | Leírás | Példa |
---|---|---|
éééé | Az évet képviseli, és négy számjegyű kötelező. | 2018 |
m [m] | A hónap komponenshez egy vagy két számjeggyel kell rendelkeznünk (1-től 12-ig). | 1, 11 |
d [d] | A hónap napjának értékéhez egy vagy két számjeggyel kell rendelkeznünk (1-től 31-ig). | 7, 12 |
hh | A nap órájának állványai, 0 és 23 közötti megengedett értékekkel. | 01, 16 |
mm | Az óra percekig áll, 0 és 59 közötti megengedett értékekkel. | 02, 45 |
ss | Percekig másodpercekig áll, 0 és 59 közötti megengedett értékekkel. | 03, 52 |
[.f…] | A választható másodperc törtrészeket képviseli, akár nanoszekundum pontosságú is lehet, így a megengedett értékek 0 és 999999999 között vannak. | 12, 1567, 123456789 |
2.2. Alternatív formátumok
Ha nem JDBC időbélyeg formátumban van, akkor szerencsére értéke is vesz egy LocalDateTime példa.
Ez azt jelenti, hogy bármilyen formátumú dátumot felvehetünk, csak előbb kell átalakítanunk a-vá LocalDateTime:
Karakterminta = "MMM dd, yyyy HH: mm: ss.SSSSSSSS"; String timestampAsString = "2018. november 12, 13: 02: 56.12345678"; DateTimeFormatter formatter = DateTimeFormatter.ofPattern (minta); LocalDateTime localDateTime = LocalDateTime.from (formatter.parse (timestampAsString));
És akkor használhatjuk értéke korábban tettük:
Timestamp timestamp = Timestamp.valueOf (localDateTime); assertEquals ("2018-11-12 13: 02: 56.12345678", timestamp.toString ());
Megjegyzendő, hogy ellentétben a Dátum tárgy, a Időbélyeg az objektum képes a másodperc töredékeinek tárolására.
3. Formázza a Időbélyeg mint a Húr
A formázáshoz a Időbélyeg, ugyanaz a kihívás lesz, mivel az alapértelmezett formátum a saját JDBC időbélyeg-formátum:
assertEquals ("2018-11-12 13: 02: 56.12345678", timestamp.toString ());
De megint egy közvetítő konverzió segítségével formázhatjuk az eredményt Húr más dátum és idő mintával, például az ISO-8601 szabvány szerint:
Timestamp timestamp = 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. Következtetés
Ebben a cikkben láttuk, hogyan lehet konvertálni a között Húr és Időbélyeg objektumok Java-ban. Láttuk, hogyan kell használni LocalDateTime konverzió, mint közvetítő lépés a különböző dátum- és időmintákra való váltáshoz és onnan való konvertáláshoz.
És győződjön meg arról, hogy megtalálja ezeket a példákat és részleteket a GitHubon.