Junior
Was ist ZonedDateTime?
sobes.tech KI
Antwort von AI
ZonedDateTime — ist eine Klasse aus dem Paket java.time, die ein Datum und eine Uhrzeit mit einer korrekten Verschiebung von UTC* und die Zeitzone verbunden. Es berücksichtigt die Regeln für Sommerzeitumstellung und andere Besonderheiten der Zeitzone.
Im Gegensatz zu OffsetDateTime, das nur die Verschiebung von UTC speichert, speichert ZonedDateTime eine Referenz auf ein ZoneId-Objekt, das die Zeitzone repräsentiert, was die korrekte Durchführung von Zeitberechnungen unter Berücksichtigung von Zeitänderungen im Jahresverlauf ermöglicht.
Hauptmerkmale:
- Kombination: Vereint Datum, Uhrzeit und Zeitzone.
- Genauigkeit: Berücksichtigt die Regeln für Sommerzeit (DST) und andere Änderungen innerhalb der Zone.
- Unveränderlich:
ZonedDateTime-Objekte sind unveränderlich, ebenso wie andere Klassen ausjava.time.
Beispiel für die Erstellung:
// Erstellen eines ZonedDateTime für einen bestimmten Zeitpunkt in einer bestimmten Zone
ZonedDateTime dateTimeInLondon = ZonedDateTime.of(2023, 10, 26, 10, 30, 0, 0, ZoneId.of("Europe/London"));
System.out.println(dateTimeInLondon);
// Aktuelles ZonedDateTime in der Systemszone
ZonedDateTime now = ZonedDateTime.now();
System.out.println(now);
Anwendungen:
- Darstellung von Ereignissen, die an einen Ort und eine Zeit gebunden sind (z.B. Beginn eines Konzerts in einer bestimmten Stadt).
- Durchführung von Berechnungen zwischen Zeitpunkten in verschiedenen Zeitzonen unter Berücksichtigung der DST-Regeln.
- Arbeit mit externen Systemen oder Datenbanken, die die Angabe der Zeitzone erfordern.
Vergleich mit anderen Klassen:
| Klasse | Datum | Uhrzeit | Verschiebung von UTC | Zeitzone | Berücksichtigt DST |
|---|---|---|---|---|---|
LocalDateTime |
Ja | Ja | Nein | Nein | Nein |
OffsetDateTime |
Ja | Ja | Ja | Nein | Teilweise |
ZonedDateTime |
Ja | Ja | Ja | Ja | Ja |