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:
ZonedDateTimeobyekti o‘zgarmas, boshqajava.timesinflari 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 |