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:

MintaLeírásPé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
hhA nap órájának állványai, 0 és 23 közötti megengedett értékekkel.01, 16
mmAz óra percekig áll, 0 és 59 közötti megengedett értékekkel.02, 45
ssPercekig 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.


$config[zx-auto] not found$config[zx-overlay] not found