Konverter tid til millisekunder i Java

1. Oversigt

I denne hurtige vejledning vi illustrerer flere måder at konvertere tid til Unix-epoke millisekunder i Java.

Mere specifikt bruger vi:

  • Core Java'er java.util.Date og Kalender
  • Java 8s dato og tid API
  • Joda-Time bibliotek

2. Core Java

2.1. Ved brug af Dato

Lad os først definere en millis ejendom med en tilfældig værdi på millisekunder:

lange millis = 1556175797428L; // 25. april 2019 7: 03: 17.428 UTC

Vi bruger denne værdi til at initialisere vores forskellige objekter og kontrollere vores resultater.

Lad os derefter starte med en Dato objekt:

Dato dato = // detaljer om implementering

Nu er vi klar til konvertere dato i millisekunder ved blot at påberåbe sig getTime () metode:

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

2.2. Ved brug af Kalender

Ligeledes, hvis vi har en Kalender objekt, kan vi bruge getTimeInMillis () metode:

Kalenderkalender = // implementeringsoplysninger Assert.assertEquals (millis, calendar.getTimeInMillis ());

3. Java 8 Date Time API

3.1. Ved brug af Øjeblikkelig

Kort fortalt, Øjeblikkelig er et punkt i Java's epoke tidslinje.

Vi kan få den aktuelle tid i millisekunder fra Øjeblikkelig:

java.time.Instant instant = // detaljer om implementering Assert.assertEquals (millis, instant.toEpochMilli ());

Som et resultat af dette toEpochMilli () metoden returnerer det samme antal millisekunder som vi definerede tidligere.

3.2. Ved brug af LocalDateTime

På samme måde kan vi bruge Java 8s Date and Time API til at konvertere en LocalDateTime i millisekunder:

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

Først oprettede vi en forekomst af den aktuelle dato. Derefter brugte vi toEpochMilli () metode til at konvertere ZonedDateTime i millisekunder.

Som vi ved, LocalDateTime indeholder ikke oplysninger om tidszonen. Med andre ord, vi kan ikke få millisekunder direkte fra LocalDateTime eksempel.

4. Joda-Time

Mens Java 8 tilføjer meget af Joda-Time's funktionalitet, vil vi måske bruge denne mulighed, hvis vi er på Java 7 eller tidligere.

4.1. Ved brug af Øjeblikkelig

For det første kan vi få det aktuelle system millisekunder fra Joda-Time Øjeblikkelig klasse instans ved hjælp af getMillis () metode:

Øjeblikkelig jodaInstant = // implementeringsdetaljer Assert.assertEquals (millis, jodaInstant.getMillis ());

4.2. Ved brug af Dato tid

Derudover, hvis vi har en Joda-Time Dato tid eksempel:

DateTime jodaDateTime = // detaljer om implementering

Så kan vi hente millisekunder med getMillis () metode:

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

5. Konklusion

Afslutningsvis demonstrerer denne artikel, hvordan man konverterer tid til millisekunder i Java.

Endelig, som altid, er den komplette kode til denne artikel tilgængelig på GitHub.