Junior
Kas yra ZonedDateTime?
sobes.tech AI
Atsakymas iš AI
ZonedDateTime – tai klasė iš java.time paketo, kuri atstovauja datą ir laiką su teisingu nuokrypiu nuo UTC* და susijusį laiko juostą. Ji atsižvelgia į vasaros laiką ir kitus konkrečios laiko juostos ypatumus.
Skirtingai nuo OffsetDateTime, kuris saugo tik nuokrypį nuo UTC, ZonedDateTime saugo nuorodą į ZoneId objektą, kuris atstovauja laiko juostą, leidžiantį teisingai atlikti laikrodžio skaičiavimus, atsižvelgiant į metų laikus.
Pagrindinės savybės:
- Kombinacija: sujungia datą, laiką ir laiko juostą.
- Tikslumas: atsižvelgia į vasaros laiką (DST) ir kitus pokyčius laiko juostoje.
- Neįgalus:
ZonedDateTimeobjektai yra nekeičiami, kaip ir kitijava.timeklasės.
Pavyzdys:
// Sukurti `ZonedDateTime` tam tikru laiku ir laiko juosta
ZonedDateTime dateTimeInLondon = ZonedDateTime.of(2023, 10, 26, 10, 30, 0, 0, ZoneId.of("Europe/London"));
System.out.println(dateTimeInLondon);
// Gauti dabartinį `ZonedDateTime` sistemos laiko juostoje
ZonedDateTime now = ZonedDateTime.now();
System.out.println(now);
Naudojimas:
- Renginių rodymas, susijusių su konkrečia vieta ir laiku (pavyzdžiui, koncertų pradžios laikas tam tikrame mieste).
- Laiko skaičiavimai tarp skirtingų laiko juostų, atsižvelgiant į DST taisykles.
- Darbas su išorinėmis sistemomis ar duomenų bazėmis, kurios reikalauja nurodyti laiko juostą.
Palyginimas su kitais klasėmis:
| Klasė | Data | Laikas | Nuokrypis nuo UTC | Laiko juosta | Ar atsižvelgiama į DST |
|---|---|---|---|---|---|
LocalDateTime |
Taip | Taip | Ne | Ne | Ne |
OffsetDateTime |
Taip | Taip | Taip | Ne | Iš dalies |
ZonedDateTime |
Taip | Taip | Taip | Taip | Taip |