Sobes.tech
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: ZonedDateTime objektai yra nekeičiami, kaip ir kiti java.time klasė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