Junior
Šta je ZonedDateTime?
sobes.tech АИ
Одговор од АИ
ZonedDateTime — це класа из пакета java.time, која представља датум и време са правилним помаком од UTC* и часовну зону која је повезана са тим. Она узима у обзир правила преласка на летње време и друге карактеристике зоне.
За разлику од OffsetDateTime, који чува само помак од UTC, ZonedDateTime одржава референцу на објекат ZoneId, који представља часовну зону, што омогућава коректне аритметичке операције са временом узимајући у обзир промене у времену током године.
Главне карактеристике:
- Комбинација: Спаја датум, време и часовну зону.
- Тачност: Узима у обзир правила за прелазак на летње време (DST) и друге промене у зони.
- Непроменљиво: Објекти
ZonedDateTimeсу имутабилни, као и друге класе изjava.time.
Пример креирања:
// Креирање `ZonedDateTime` за одређени тренутак у одређеној зони
ZonedDateTime dateTimeInLondon = ZonedDateTime.of(2023, 10, 26, 10, 30, 0, 0, ZoneId.of("Europe/London"));
System.out.println(dateTimeInLondon);
// Добијање тренутног `ZonedDateTime` у системској зони
ZonedDateTime now = ZonedDateTime.now();
System.out.println(now);
Примењена употреба:
- Представљање догађаја везаних за одређено место и време (нпр. почетак концерта у одређеном граду).
- Извођење рачунања између тачака у времену у различитим временским зонама узимајући у обзир правила DST.
- Рад са спољашњим системима или базама података који захтевају навођење временске зоне.
Поређење са другим класама:
| Класа | Датум | Време | Помак од UTC | Временска зона | Узима у обзир DST |
|---|---|---|---|---|---|
LocalDateTime |
Да | Да | Не | Не | Не |
OffsetDateTime |
Да | Да | Да | Не | Делимично |
ZonedDateTime |
Да | Да | Да | Да | Да |