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.