Sobes.tech
Junior

ZonedDateTime nima?

sobes.tech AI

AIdan javob

ZonedDateTime — bu java.time paketidan kelib chiqadigan va UTC* va unga bog‘liq vaqt zonasini ifodalaydigan sinfdir. U yozgi vaqtga o‘tish va boshqa mintaqaviy xususiyatlarni hisobga oladi.

OffsetDateTimedan farqli o‘laroq, u faqat UTCdan bo‘lgan masofani saqlaydi, ZonedDateTime esa ZoneId obyekti bilan havolani saqlaydi, bu esa vaqt zonasi bo‘yicha hisob-kitoblarni to‘g‘ri bajarishga imkon beradi va yil davomida vaqt o‘zgarishlarini hisobga oladi.

Asosiy xususiyatlar:

  • Kombinatsiya: Sana, vaqt va vaqt zonasi bilan birlashtiradi.
  • Aniqlik: Yazgi vaqtga o‘tish (DST) va boshqa o‘zgarishlarni hisobga oladi.
  • O‘zgarmas: ZonedDateTime obyekti o‘zgarmas, boshqa java.time sinflari kabi.

Yaratish misoli:

// Aniq bir vaqtda va aniq bir zonada `ZonedDateTime` yaratish
ZonedDateTime dateTimeInLondon = ZonedDateTime.of(2023, 10, 26, 10, 30, 0, 0, ZoneId.of("Europe/London"));
System.out.println(dateTimeInLondon);

// Tizim zonasida joriy `ZonedDateTime` olish
ZonedDateTime now = ZonedDateTime.now();
System.out.println(now);

Qo‘llanilishi:

  • Aniq joy va vaqt bilan bog‘liq voqealarni ifodalash (masalan, konsert boshlanish vaqti).
  • Turli vaqt zonalarida vaqt nuqtalari o‘rtasida hisob-kitoblar qilish, DST qoidalarini hisobga olgan holda.
  • Tashqi tizimlar yoki ma'lumotlar bazalari bilan ishlash, vaqt zonasi ko‘rsatilishini talab qiladi.

Boshqa sinflar bilan taqqoslash:

Sinf Sana Vaqt UTCdan bo‘lgan masofa Vaqt zonasi DST ni hisobga oladimi
LocalDateTime Ha Ha Yo‘q Yo‘q Yo‘q
OffsetDateTime Ha Ha Ha Yo‘q Qisman
ZonedDateTime Ha Ha Ha Ha Ha