Sobes.tech
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 Да Да Да Да Да