Como Converter Date para OffsetDateTime no Java
Neste tutorial mostro como converter Date para OffsetDateTime no #Java

Este em um breve tutorial de como podemos converter um valor do tipo Date para um valor do tipo OffsetDateTime usando o Java.
O intuito deste tutorial é mostrar uma forma prática e rápida de como podemos trabalhar com os formatos Date e OffsetDateTime no Java, pois geralmente a manipulação do tipo (Date) é algo um pouco complicado principalmente quando queremos comparar duas datas distintas ou calcular o tempo decorrido entre uma data e outra e a utilizarmos a classe OffsetDateTime facilitar a manipulação de variáveis do tipo (data), já que ela possui muitos métodos que auxilia na manipulação de datas.
Abaixo mostro o código que foi criado para demonstrar Como Converter Date para OffsetDateTime no Java.
import java.time.Instant; import java.time.OffsetDateTime; import java.time.ZoneOffset; import java.util.Date; public class ConvertDateToOffsetDateTime { public static void main(String[] args) { Date date = new Date(); Instant instant = date.toInstant(); ZoneOffset offset = ZoneOffset.of("-03:00"); OffsetDateTime offsetDateTime = OffsetDateTime.ofInstant(instant, offset); System.out.println("instant: " + instant); System.out.println("Date: " + date); System.out.println("OffsetDateTime: " + offsetDateTime); } }
Uma breve explicação do código acima:
- 1ª é atribuímos a data atual a variável (date) com usando a instancia (new Date());
- Depois atribuímos o Instant a variável (date) usando o método (toInstant);
- Configuramos a zona do offset para (-03:00) com o método (of) da classe ZoneOffset;
- Por ultimo é realizada a conversão para o formato (OffsetDateTime) com o método (ofInstant) da classe (OffsetDateTime) e atribuímos o valor a variável (offsetDateTime);
- E logo após é realizada a impressão dos valores na console da IDE;
Abaixo mostro uma breve descrição da saída da execução do código acima e o que é impresso no console da IDE:
- Na 1ª linha é exibido a data no formato (Instant);
- Na 2ª linha é exibido a data no formato (Date);
- Na 3ª linha é exibido a data no formato (OffsetDateTime);
instant: 2023-11-30T19:03:02.565Z Date: Thu Nov 30 16:03:02 BRT 2023 OffsetDateTime: 2023-11-30T16:03:02.565-03:00