Pretvori vrijeme u milisekunde na Javi

1. Pregled

U ovom brzom vodiču, ilustrirat ćemo više načina pretvaranja vremena u Unix-epoch milisekunde na Javi.

Točnije, koristit ćemo:

  • Jezgre Java java.util.Datum i Kalendar
  • API za datum i vrijeme Java 8
  • Biblioteka Joda-Time

2. Jezgra Java

2.1. Koristeći Datum

Prvo, definirajmo a milis svojstvo koje sadrži slučajnu vrijednost milisekundi:

dugi milis = 1556175797428L; // 25. travnja 2019. 7: 03: 17.428 UTC

Ovu ćemo vrijednost upotrijebiti za inicijalizaciju različitih objekata i provjeru rezultata.

Dalje, krenimo s a Datum objekt:

Datum datum = // detalji implementacije

Sad smo spremni pretvoriti datum u milisekunde jednostavnim pozivanjem datoteke getTime () metoda:

Assert.assertEquals (milis, datum.getTime ());

2.2. Koristeći Kalendar

Isto tako, ako imamo a Kalendar objekt, možemo koristiti getTimeInMillis () metoda:

Kalendar kalendara = // detalji provedbe Assert.assertEquals (millis, calendar.getTimeInMillis ());

3. Java 8 Date Time API

3.1. Koristeći Trenutak

Jednostavno rečeno, Trenutak je točka na Javinoj vremenskoj traci.

Trenutno vrijeme možemo dobiti u milisekundama iz Trenutak:

java.time.Instant instant = // detalji provedbe Assert.assertEquals (millis, instant.toEpochMilli ());

Kao rezultat, toEpochMilli () metoda vraća isti broj milisekundi kao što smo definirali ranije.

3.2. Koristeći LocalDateTime

Slično tome, možemo koristiti API za datum i vrijeme Java 8 za pretvorbu a LocalDateTime u milisekunde:

LocalDateTime localDateTime = // detalji implementacije ZonedDateTime zdt = ZonedDateTime.of (localDateTime, ZoneId.systemDefault ()); Assert.assertEquals (millis, zdt.toInstant (). ToEpochMilli ());

Prvo smo stvorili primjerak trenutnog datuma. Nakon toga smo koristili toEpochMilli () metoda za pretvorbu ZonedDateTime u milisekunde.

Kao što znamo, LocalDateTime ne sadrži informacije o vremenskoj zoni. Drugim riječima, ne možemo izravno dobiti milisekunde LocalDateTime primjer.

4. Joda-Time

Iako Java 8 dodaje velik dio funkcionalnosti Joda-Timea, možda ćemo htjeti koristiti ovu opciju ako smo na Javi 7 ili starijoj.

4.1. Koristeći Trenutak

Prvo, trenutni sustav možemo dobiti milisekunde iz Joda-Time Trenutak instance klase pomoću getMillis () metoda:

Instant jodaInstant = // detalji implementacije Assert.assertEquals (millis, jodaInstant.getMillis ());

4.2. Koristeći Datum vrijeme

Uz to, ako imamo Joda-Time Datum vrijeme primjer:

DateTime jodaDateTime = // detalji implementacije

Tada možemo dohvatiti milisekunde pomoću getMillis () metoda:

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

5. Zaključak

U zaključku, ovaj članak pokazuje kako pretvoriti vrijeme u milisekunde na Javi.

Napokon, kao i uvijek, cjeloviti kôd za ovaj članak dostupan je na GitHubu.