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 |
Ооба | Ооба | Ооба | Ооба | Ооба |