Converti il ​​tempo in millisecondi in Java

1. Panoramica

In questo rapido tutorial, illustreremo diversi modi per convertire il tempo in millisecondi dell'epoca Unix in Java .

Più specificamente, useremo:

  • Java.util.Date e Calendar di Java core
  • API di data e ora di Java 8
  • Libreria Joda-Time

2. Core Java

2.1. Utilizzo della data

In primo luogo, definiamo una proprietà millis che contiene un valore casuale di millisecondi:

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

Useremo questo valore per inizializzare i nostri vari oggetti e verificare i nostri risultati.

Quindi, iniziamo con un oggetto Date :

Date date = // implementation details

Ora siamo pronti per convertire la data in millisecondi semplicemente invocando il metodo getTime () :

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

2.2. Utilizzo del calendario

Allo stesso modo, se abbiamo un oggetto Calendar , possiamo usare il metodo getTimeInMillis () :

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

3. API Java 8 Date Time

3.1. Utilizzando Instant

In poche parole, Instant è un punto nella timeline dell'epoca di Java.

Possiamo ottenere l'ora corrente in millisecondi dall'istante :

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

Di conseguenza, il metodo toEpochMilli () restituisce lo stesso numero di millisecondi definito in precedenza.

3.2. Utilizzando LocalDateTime

Allo stesso modo, possiamo utilizzare l'API Date and Time di Java 8 per convertire un LocalDateTime in millisecondi:

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

Innanzitutto, abbiamo creato un'istanza della data corrente. Successivamente, abbiamo utilizzato il metodo toEpochMilli () per convertire ZonedDateTime in millisecondi.

Come sappiamo, LocalDateTime non contiene informazioni sul fuso orario. In altre parole, non possiamo ottenere millisecondi direttamente da LocalDateTime esempio .

4. Joda-Time

Sebbene Java 8 aggiunga molte delle funzionalità di Joda-Time, potremmo voler utilizzare questa opzione se siamo su Java 7 o versioni precedenti.

4.1. Utilizzando Instant

In primo luogo, possiamo ottenere i millisecondi di sistema correnti dall'istanza della classe Joda-Time Instant utilizzando il metodo getMillis () :

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

4.2. Utilizzando DateTime

Inoltre, se disponiamo di un'istanza DateTime di Joda-Time :

DateTime jodaDateTime = // implementation details

Quindi possiamo recuperare i millisecondi con il metodo getMillis () :

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

5. conclusione

In conclusione, questo articolo mostra come convertire il tempo in millisecondi in Java.

Infine, come sempre, il codice completo di questo articolo è disponibile su GitHub.