Junior
Co je ZonedDateTime?
sobes.tech AI
Odpověď od AI
ZonedDateTime — je třída z balíčku java.time, která představuje datum a čas s správným posunem od UTC* a časová zóna s ní spojená. Zohledňuje pravidla přechodu na letní čas a další specifika dané zóny.
Na rozdíl od OffsetDateTime, který ukládá pouze posun od UTC, ZonedDateTime udržuje odkaz na objekt ZoneId, který reprezentuje časovou zónu, což umožňuje správné provádění aritmetických operací s časem s ohledem na změny času během roku.
Hlavní vlastnosti:
- Kombinace: Spojuje datum, čas a časovou zónu.
- Přesnost: Zohledňuje pravidla přechodu na letní čas (DST) a další změny v zóně.
- Neměnnost: Objekty
ZonedDateTimejsou neměnné, stejně jako jiné třídy zjava.time.
Příklad vytvoření:
// Vytvoření `ZonedDateTime` pro konkrétní čas a zónu
ZonedDateTime dateTimeInLondon = ZonedDateTime.of(2023, 10, 26, 10, 30, 0, 0, ZoneId.of("Europe/London"));
System.out.println(dateTimeInLondon);
// Získání aktuálního `ZonedDateTime` v systémové zóně
ZonedDateTime now = ZonedDateTime.now();
System.out.println(now);
Použití:
- Reprezentace událostí vázaných na konkrétní místo a čas (například začátek koncertu v určitém městě).
- Výpočty mezi časovými body v různých časových zónách s ohledem na pravidla DST.
- Práce s externími systémy nebo databázemi, které vyžadují specifikaci časové zóny.
Porovnání s jinými třídami:
| Třída | Datum | Čas | Posun od UTC | Časová zóna | Zohledňuje DST |
|---|---|---|---|---|---|
LocalDateTime |
Ano | Ano | Ne | Ne | Ne |
OffsetDateTime |
Ano | Ano | Ano | Ne | Částečně |
ZonedDateTime |
Ano | Ano | Ano | Ano | Ano |