Prevod času na milisekundy v Jave

1. Prehľad

V tomto rýchlom návode ukážeme si viac spôsobov premeny času na unixovo-epochové milisekundy v Jave.

Konkrétnejšie použijeme:

  • Core Java java.util.Date a Kalendár
  • Rozhranie API pre dátum a čas v Java 8
  • Knižnica Joda-Time

2. Jadro Java

2.1. Použitím Dátum

Najskôr definujme a millis vlastnosť s náhodnou hodnotou milisekúnd:

dlhá milis = 1556175797428L; // 25. apríla 2019 7:03:17 428 UTC

Túto hodnotu použijeme na inicializáciu rôznych objektov a na overenie našich výsledkov.

Ďalej začnime s Dátum objekt:

Dátum dátum = // podrobnosti implementácie

Teraz sme pripravení previesť dátum do milisekúnd jednoduchým vyvolaním súboru getTime () metóda:

Assert.assertEquals (millis, date.getTime ());

2.2. Použitím Kalendár

Rovnako, ak máme a Kalendár objekt, môžeme použiť getTimeInMillis () metóda:

Calendar calendar = // podrobnosti implementácie Assert.assertEquals (millis, calendar.getTimeInMillis ());

3. Java 8 API pre čas a čas

3.1. Použitím Okamžité

Jednoducho povedané, Okamžité je bod na časovej osi epochy Javy.

Aktuálny čas môžeme získať v milisekundách z Okamžité:

java.time.Instant instant = // podrobnosti implementácie Assert.assertEquals (millis, instant.toEpochMilli ());

Výsledkom je, že toEpochMilli () metóda vráti rovnaký počet milisekúnd, ako sme definovali skôr.

3.2. Použitím LocalDateTime

Podobne môžeme na prevod a. Použiť rozhranie API dátumu a času v Java 8 LocalDateTime do milisekúnd:

LocalDateTime localDateTime = // podrobnosti implementácie ZonedDateTime zdt = ZonedDateTime.of (localDateTime, ZoneId.systemDefault ()); Assert.assertEquals (millis, zdt.toInstant (). ToEpochMilli ());

Najskôr sme vytvorili inštanciu aktuálneho dátumu. Potom sme použili toEpochMilli () metóda prevodu ZonedDateTime do milisekúnd.

Ako vieme, LocalDateTime neobsahuje informácie o časovom pásme. Inými slovami, nemôžeme získať milisekundy priamo z LocalDateTime inštancia.

4. Joda-Time

Aj keď Java 8 pridáva veľa funkcií Joda-Time, možno budeme chcieť použiť túto možnosť, ak sme v prostredí Java 7 alebo staršom.

4.1. Použitím Okamžité

Najskôr môžeme aktuálny systém získať milisekundy z Joda-Time Okamžité inštancia triedy pomocou getMillis () metóda:

Okamžité jodaInstant = // podrobnosti implementácie Assert.assertEquals (millis, jodaInstant.getMillis ());

4.2. Použitím Dátum Čas

Dodatočne, ak máme Joda-Time Dátum Čas inštancia:

DateTime jodaDateTime = // podrobnosti implementácie

Potom môžeme načítať milisekundy pomocou getMillis () metóda:

Assert.assertEquals (millis, jodaDateTime.getMillis ());

5. Záver

Na záver tento článok ukazuje, ako prevádzať čas v jazyku Java na milisekundy.

Nakoniec je ako vždy kompletný kód tohto článku k dispozícii na GitHub.


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