Konverter tid til millisekunder i Java
1. Oversikt
I denne raske opplæringen, vi illustrerer flere måter å konvertere tid til Unix-epoke millisekunder i Java.
Mer spesifikt vil vi bruke:
- Core Java-er java.util.Date og Kalender
- Java 8s API for dato og klokkeslett
- Joda-Time bibliotek
2. Core Java
2.1. Ved hjelp av Dato
For det første, la oss definere en millis eiendom som har en tilfeldig verdi på millisekunder:
lange millis = 1556175797428L; // 25. april 2019 7: 03: 17.428 UTC
Vi bruker denne verdien til å initialisere de forskjellige objektene våre og verifisere resultatene.
Deretter, la oss starte med en Dato gjenstand:
Dato dato = // implementeringsdetaljer
Nå er vi klare til konvertere Dato i millisekunder ved ganske enkelt å påkalle getTime () metode:
Assert.assertEquals (millis, date.getTime ());
2.2. Ved hjelp av Kalender
Likeledes hvis vi har en Kalender objekt, kan vi bruke getTimeInMillis () metode:
Kalenderkalender = // implementeringsdetaljer Assert.assertEquals (millis, calendar.getTimeInMillis ());
3. Java 8 Date Time API
3.1. Ved hjelp av Umiddelbar
For å si det enkelt, Umiddelbar er et poeng i tidslinjen til Java.
Vi kan få den nåværende tiden i millisekunder fra Umiddelbar:
java.time.Instant instant = // implementeringsdetaljer Assert.assertEquals (millis, instant.toEpochMilli ());
Som et resultat ble den toEpochMilli () metoden returnerer det samme antall millisekunder som vi definerte tidligere.
3.2. Ved hjelp av LocalDateTime
På samme måte kan vi bruke Java 8s Date and Time API til å konvertere en LocalDateTime i millisekunder:
LocalDateTime localDateTime = // implementeringsdetaljer ZonedDateTime zdt = ZonedDateTime.of (localDateTime, ZoneId.systemDefault ()); Assert.assertEquals (millis, zdt.toInstant (). ToEpochMilli ());
Først opprettet vi en forekomst av gjeldende dato. Etter det brukte vi toEpochMilli () metode for å konvertere ZonedDateTime i millisekunder.
Som vi vet, LocalDateTime inneholder ikke informasjon om tidssonen. Med andre ord, vi kan ikke få millisekunder direkte fra LocalDateTime forekomst.
4. Joda-Time
Mens Java 8 legger til mye av Joda-Time's funksjonalitet, vil vi kanskje bruke dette alternativet hvis vi er på Java 7 eller tidligere.
4.1. Ved hjelp av Umiddelbar
For det første kan vi få dagens system millisekunder fra Joda-Time Umiddelbar klasseinstans ved hjelp av getMillis () metode:
Øyeblikkelig jodaInstant = // implementeringsdetaljer Assert.assertEquals (millis, jodaInstant.getMillis ());
4.2. Ved hjelp av Dato tid
I tillegg, hvis vi har en Joda-Time Dato tid forekomst:
DateTime jodaDateTime = // implementeringsdetaljer
Så kan vi hente millisekundene med getMillis () metode:
Assert.assertEquals (millis, jodaDateTime.getMillis ());
5. Konklusjon
Avslutningsvis demonstrerer denne artikkelen hvordan du konverterer tid til millisekunder i Java.
Til slutt, som alltid, er den komplette koden for denne artikkelen tilgjengelig på GitHub.