ZonedDateTime — это класс из пакета java.time, представляющий дату и время с правильным смещением от UTC* и связанной с ним временной зоной. Он учитывает правила перехода на летнее время и другие особенности конкретной временной зоны.
В отличие от OffsetDateTime, который хранит только смещение от UTC, ZonedDateTime хранит ссылку на объект ZoneId, представляющий временную зону, что позволяет корректно выполнять арифметические операции со временем, учитывая изменения времени в течение года.
Основные характеристики:
ZonedDateTime являются немутабельными, как и другие классы из java.time.Пример создания:
java
Применение:
Сравнение с другими классами:
| Класс | Дата | Время | Смещение от UTC | Временная зона | Учитывает DST |
|---|---|---|---|---|---|
LocalDateTime | Да | Да | Нет | Нет | Нет |
OffsetDateTime | Да | Да | Да | Нет | Частично |
ZonedDateTime | Да | Да | Да | Да | Да |