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.