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.