Sobes.tech
Junior

ZonedDateTime деген эмне?

sobes.tech AI

AIден жооп

ZonedDateTime — бул java.time пакетинен класс, ал датаны жана убакытты * туура* котормосу менен көрсөтөт UTC* жана анын узак убакыт зонасы менен байланыштуу. Ал жазгы убакыттын өтүшүн жана башка белгилерди эске алат.

OffsetDateTime гана UTCден котормону сактайт, ал эми ZonedDateTime ZoneId объектисине шилтемени сактайт, ал убакытты туура эсептөө үчүн, жыл бою убакыттын өзгөрүшүн эске алат.

Негизги өзгөчөлүктөрү:

  • Кошулуу: Дата, убакыт жана убакыт зонасы менен бириктирет.
  • Тактык: Жазгы убакытка өтүү (DST) жана башка өзгөрүүлөрдү эске алат.
  • Immutable: 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 Ооба Ооба Ооба Ооба Ооба