Converteer tijd naar milliseconden in Java

1. Overzicht

In deze korte tutorial, we zullen meerdere manieren illustreren om tijd om te zetten in Unix-epoch milliseconden in Java.

Meer specifiek gebruiken we:

  • Core Java's java.util.Date en Kalender
  • Datum- en tijd-API van Java 8
  • Joda-Time bibliotheek

2. Core Java

2.1. Gebruik makend van Datum

Laten we eerst een millis eigenschap met een willekeurige waarde van milliseconden:

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

We gebruiken deze waarde om onze verschillende objecten te initialiseren en onze resultaten te verifiëren.

Laten we vervolgens beginnen met een Datum voorwerp:

Datum datum = // implementatiedetails

Nu zijn we er klaar voor converteer het datum in milliseconden door simpelweg de krijg tijd() methode:

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

2.2. Gebruik makend van Kalender

Evenzo, als we een Kalender object, kunnen we de getTimeInMillis () methode:

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

3. Java 8 Date Time API

3.1. Gebruik makend van Onmiddellijk

Simpel gezegd, Onmiddellijk is een punt in Java's tijdlijn.

We kunnen de huidige tijd in milliseconden ophalen uit de Onmiddellijk:

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

Als gevolg hiervan is het aanEpochMilli () methode retourneert hetzelfde aantal milliseconden als we eerder hebben gedefinieerd.

3.2. Gebruik makend van LocalDateTime

Evenzo kunnen we de Datum- en tijd-API van Java 8 gebruiken om een LocalDateTime in milliseconden:

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

Eerst hebben we een instantie van de huidige datum gemaakt. Daarna gebruikten we de aanEpochMilli () methode om het ZonedDateTime in milliseconden.

Zoals we weten, LocalDateTime bevat geen informatie over de tijdzone. Met andere woorden, we kunnen geen milliseconden rechtstreeks van krijgen LocalDateTime voorbeeld.

4. Joda-Time

Hoewel Java 8 veel van de functionaliteit van Joda-Time toevoegt, willen we deze optie misschien gebruiken als we Java 7 of eerder gebruiken.

4.1. Gebruik makend van Onmiddellijk

Ten eerste kunnen we de huidige systeem milliseconden uit de Joda-Time Onmiddellijk class-instantie met behulp van de getMillis () methode:

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

4.2. Gebruik makend van Datum Tijd

Bovendien, als we een Joda-Time hebben Datum Tijd voorbeeld:

DateTime jodaDateTime = // implementatiedetails

Dan kunnen we de milliseconden ophalen met de getMillis () methode:

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

5. Conclusie

Concluderend laat dit artikel zien hoe u in Java tijd in milliseconden kunt omzetten.

Eindelijk, zoals altijd, is de volledige code voor dit artikel beschikbaar op GitHub.