Junior
O que é ZonedDateTime?
sobes.tech IA
Resposta da IA
ZonedDateTime — é uma classe do pacote java.time que representa uma data e hora com um deslocamento correto desde UTC* e a zona horária associada. Ele leva em consideração as regras de mudança para o horário de verão e outras particularidades da zona.
Ao contrário de OffsetDateTime, que armazena apenas o diferença de deslocamento do UTC, ZonedDateTime mantém uma referência a um objeto ZoneId, que representa a zona horária, permitindo realizar operações aritméticas com o tempo considerando as mudanças de horário ao longo do ano.
Características principais:
- Combinação: Une data, hora e zona horária.
- Precisão: Considera as regras de mudança para o horário de verão (DST) e outras alterações na zona.
- Imutável: Os objetos
ZonedDateTimesão imutáveis, assim como outras classes dejava.time.
Exemplo de criação:
// Criar um ZonedDateTime para um momento específico em uma zona específica
ZonedDateTime dateTimeInLondon = ZonedDateTime.of(2023, 10, 26, 10, 30, 0, 0, ZoneId.of("Europe/London"));
System.out.println(dateTimeInLondon);
// Obter o ZonedDateTime atual na zona do sistema
ZonedDateTime now = ZonedDateTime.now();
System.out.println(now);
Aplicações:
- Representar eventos vinculados a um local e tempo específicos (por exemplo, o horário de início de um concerto numa cidade específica).
- Realizar cálculos entre pontos no tempo em diferentes fusos horários, considerando as regras de DST.
- Trabalhar com sistemas externos ou bases de dados que requerem a indicação da zona horária.
Comparação com outras classes:
| Classe | Data | Hora | Deslocamento do UTC | Zona horária | Considera DST |
|---|---|---|---|---|---|
LocalDateTime |
Sim | Sim | Não | Não | Não |
OffsetDateTime |
Sim | Sim | Sim | Não | Parcialmente |
ZonedDateTime |
Sim | Sim | Sim | Sim | Sim |