Convertir le temps en millisecondes en Java

1. Vue d'ensemble

Dans ce rapide didacticiel, nous allons illustrer plusieurs façons de convertir le temps en millisecondes d'époque Unix en Java .

Plus précisément, nous utiliserons:

  • Java.util.Date et calendrier de Core Java
  • API de date et d'heure de Java 8
  • Bibliothèque Joda-Time

2. Core Java

2.1. Utilisation de la date

Tout d'abord, définissons une propriété millis contenant une valeur aléatoire de millisecondes:

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

Nous utiliserons cette valeur pour initialiser nos différents objets et vérifier nos résultats.

Ensuite, commençons par un objet Date :

Date date = // implementation details

Maintenant, nous sommes prêts à convertir la date en millisecondes en appelant simplement la méthode getTime () :

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

2.2. Utilisation du calendrier

De même, si nous avons un objet Calendar , nous pouvons utiliser la méthode getTimeInMillis () :

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

3. API Java 8 Date Time

3.1. Utiliser Instant

En termes simples, Instant est un point dans la chronologie de l'époque de Java.

Nous pouvons obtenir l'heure actuelle en millisecondes à partir de l' instant :

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

Par conséquent, la méthode toEpochMilli () renvoie le même nombre de millisecondes que nous l'avons défini précédemment.

3.2. Utilisation de LocalDateTime

De même, nous pouvons utiliser l'API Date and Time de Java 8 pour convertir un LocalDateTime en millisecondes:

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

Tout d'abord, nous avons créé une instance de la date actuelle. Après cela, nous avons utilisé la méthode toEpochMilli () pour convertir le ZonedDateTime en millisecondes.

Comme nous le savons, LocalDateTime ne contient pas d'informations sur le fuseau horaire. En d'autres termes, nous ne pouvons pas obtenir des millisecondes directement à partir de l' instance LocalDateTime .

4. Joda-Time

Bien que Java 8 ajoute une grande partie des fonctionnalités de Joda-Time, nous souhaitons peut-être utiliser cette option si nous sommes sur Java 7 ou une version antérieure.

4.1. Utiliser Instant

Tout d'abord, nous pouvons obtenir les millisecondes du système actuel à partir de l' instance de classe Joda-Time Instant en utilisant la méthode getMillis () :

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

4.2. Utilisation de DateTime

De plus, si nous avons une instance Joda-Time DateTime :

DateTime jodaDateTime = // implementation details

Ensuite, nous pouvons récupérer les millisecondes avec la méthode getMillis () :

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

5. Conclusion

En conclusion, cet article montre comment convertir le temps en millisecondes en Java.

Enfin, comme toujours, le code complet de cet article est disponible à l'adresse over sur GitHub.