Converter tempo em milissegundos em Java

Converter tempo em milissegundos em Java

1. Visão geral

Neste tutorial rápido,we’ll illustrate multiple ways of converting time into Unix-epoch milliseconds in Java.

Mais especificamente, usaremos:

  • java.util.Date eCalendar do núcleo do Java

  • API de data e hora do Java 8

  • Biblioteca Joda-Time

2. Java principal

2.1. UsandoDate

Em primeiro lugar, vamos definir uma propriedademillis contendo um valor aleatório de milissegundos:

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

Usaremos esse valor para inicializar nossos vários objetos e verificar nossos resultados.

A seguir, vamos começar com um objetoDate:

Date date = // implementation details

Agora, estamos prontos paraconvert the date into milliseconds by simply invoking the getTime() method:

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

2.2. UsandoCalendar

Da mesma forma, se tivermos um objetoCalendar, podemos usar o métodogetTimeInMillis():

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

3. API Java 8 Date Time

3.1. UsandoInstant

Simplificando,Instant é um ponto na linha do tempo da época do Java.

Podemos obter a hora atual em milissegundos doInstant:

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

Como resultado, o métodotoEpochMilli() retorna o mesmo número de milissegundos conforme definido anteriormente.

3.2. UsandoLocalDateTime

Da mesma forma, podemos usarDate and Time API do Java 8 para converterLocalDateTime em milissegundos:

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

Primeiro, criamos uma instância da data atual. Depois disso, usamos o métodotoEpochMilli() para converterZonedDateTime em milissegundos.

Como sabemos,LocalDateTime não contém informações sobre o fuso horário. Em outras palavras,we can’t get milliseconds directly from LocalDateTime instance.

4. Joda-Time

Enquanto o Java 8 adiciona muitas das funcionalidades do Joda-Time, podemos querer usar esta opção se estivermos no Java 7 ou anterior.

4.1. UsandoInstant

Em primeiro lugar, podemos obter os milissegundos do sistema atual a partir da instância da classeJoda-TimeInstant usando o métodogetMillis():

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

4.2. UsandoDateTime

Além disso, se tivermos uma instância Joda-TimeDateTime:

DateTime jodaDateTime = // implementation details

Então, podemos recuperar os milissegundos com o métodogetMillis():

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

5. Conclusão

Em conclusão, este artigo demonstra como converter o tempo em milissegundos em Java.

Finalmente, como sempre, o código completo deste artigo está disponívelover on GitHub.