Sobes.tech
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 aus java.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