Konvertieren Sie die Zeit in Java in Millisekunden

1. Übersicht

In diesem kurzen Tutorial werden verschiedene Möglichkeiten zur Konvertierung der Zeit in Unix-Epochen-Millisekunden in Java erläutert .

Genauer gesagt verwenden wir:

  • Java.util.Date und Kalender von Core Java
  • Datums- und Uhrzeit-API von Java 8
  • Joda-Zeitbibliothek

2. Core Java

2.1. Mit Datum

Definieren wir zunächst eine Millis- Eigenschaft, die einen zufälligen Wert von Millisekunden enthält:

long millis = 1556175797428L; // April 25, 2019 7:03:17.428 UTC

Wir werden diesen Wert verwenden, um unsere verschiedenen Objekte zu initialisieren und unsere Ergebnisse zu überprüfen.

Beginnen wir als nächstes mit einem Date- Objekt:

Date date = // implementation details

Jetzt können wir das Datum in Millisekunden konvertieren, indem wir einfach die Methode getTime () aufrufen :

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

2.2. Mit Kalender

Wenn wir ein Kalenderobjekt haben , können wir auch die Methode getTimeInMillis () verwenden:

Calendar calendar = // implementation details Assert.assertEquals(millis, calendar.getTimeInMillis());

3. Java 8 Date Time API

3.1. Mit Sofort

Einfach ausgedrückt ist Instant ein Punkt in Javas Epochenzeitleiste.

Wir können die aktuelle Zeit in Millisekunden vom Instant abrufen :

java.time.Instant instant = // implementation details Assert.assertEquals(millis, instant.toEpochMilli());

Infolgedessen gibt die toEpochMilli () -Methode dieselbe Anzahl von Millisekunden zurück, wie wir sie zuvor definiert haben.

3.2. Verwenden von LocalDateTime

Ebenso können wir die Datums- und Uhrzeit-API von Java 8 verwenden, um eine LocalDateTime in Millisekunden zu konvertieren :

LocalDateTime localDateTime = // implementation details ZonedDateTime zdt = ZonedDateTime.of(localDateTime, ZoneId.systemDefault()); Assert.assertEquals(millis, zdt.toInstant().toEpochMilli());

Zuerst haben wir eine Instanz des aktuellen Datums erstellt. Danach haben wir die toEpochMilli () -Methode verwendet, um die ZonedDateTime in Millisekunden zu konvertieren .

Wie wir wissen, enthält LocalDateTime keine Informationen zur Zeitzone. Mit anderen Worten, wir können keine Millisekunden direkt von der LocalDateTime- Instanz abrufen .

4. Joda-Zeit

Während Java 8 einen Großteil der Funktionen von Joda-Time hinzufügt, möchten wir diese Option möglicherweise verwenden, wenn wir Java 7 oder früher verwenden.

4.1. Mit Sofort

Erstens können wir die aktuellen Systemmillisekunden aus der Joda-Time Instant- Klasseninstanz mit der Methode getMillis () abrufen :

Instant jodaInstant = // implementation details Assert.assertEquals(millis, jodaInstant.getMillis());

4.2. Mit Datetime

Wenn wir außerdem eine Joda-Time DateTime- Instanz haben:

DateTime jodaDateTime = // implementation details

Dann können wir die Millisekunden mit der Methode getMillis () abrufen :

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

5. Schlussfolgerung

Zusammenfassend zeigt dieser Artikel, wie die Zeit in Java in Millisekunden konvertiert wird.

Schließlich ist wie immer der vollständige Code für diesen Artikel auf GitHub verfügbar.