Junior
Ce este ZonedDateTime?
sobes.tech AI
Răspuns de la AI
ZonedDateTime — este o clasă din pachetul java.time care reprezintă o dată și o oră cu o deplasare corectă față de UTC* și zona orară asociată. Acesta ține cont de regulile de trecere la ora de vară și alte particularități ale zonei.
Spre deosebire de OffsetDateTime, care stochează doar decalajul față de UTC, ZonedDateTime păstrează o referință la un obiect ZoneId, care reprezintă zona orară, permițând efectuarea de operații aritmetice cu timpul, ținând cont de modificările de timp pe parcursul anului.
Caracteristici principale:
- Combinare: Combină data, ora și zona orară.
- Precizie: ține cont de regulile de trecere la ora de vară (DST) și alte modificări în zonă.
- Imutabil: Obiectele
ZonedDateTimesunt imuabile, ca și alte clase dinjava.time.
Exemplu de creare:
// Crearea unui `ZonedDateTime` pentru un anumit moment într-o zonă specifică
ZonedDateTime dateTimeInLondon = ZonedDateTime.of(2023, 10, 26, 10, 30, 0, 0, ZoneId.of("Europe/London"));
System.out.println(dateTimeInLondon);
// Obținerea `ZonedDateTime`-ului curent în zona sistemului
ZonedDateTime now = ZonedDateTime.now();
System.out.println(now);
Aplicații:
- Reprezentarea evenimentelor legate de un anumit loc și timp (de exemplu, ora de început a unui concert într-un oraș specific).
- Efectuarea de calcule între puncte temporale în diferite zone, ținând cont de regulile DST.
- Lucrul cu sisteme externe sau baze de date care necesită specificarea zonei orare.
Comparativ cu alte clase:
| Clasă | Data | Ora | Deplasare față de UTC | Zonă orară | ține cont de DST |
|---|---|---|---|---|---|
LocalDateTime |
Da | Da | Nu | Nu | Nu |
OffsetDateTime |
Da | Da | Da | Nu | Parțial |
ZonedDateTime |
Da | Da | Da | Da | Da |