Datumsangaben, Uhrzeiten und Zeitzonen

Zusätzlich zur grundlegenden DateTime-Struktur bietet .NET die folgenden Klassen, die den Umgang mit Zeitzonen unterstützen:

  • TimeZone

    Verwenden Sie diese Klasse, um die lokale Zeitzone des Systems und die Zeitzone der koordinierten Weltzeit (Coordinated Universal Time, UTC) zu verarbeiten. Die Funktionalität der Klasse TimeZone wird größtenteils durch die Klasse TimeZoneInfo ersetzt.

  • TimeZoneInfo

    Verwenden Sie diese Klasse für das Arbeiten mit allen in einem System vordefinierten Zeitzonen, zum Erstellen neuer Zeitzonen und zum problemlosen Konvertieren von Datums- und Zeitangaben zwischen Zeitzonen. Verwenden Sie für neue Entwicklungen die TimeZoneInfo-Klasse statt der TimeZone-Klasse.

  • DateTimeOffset

    Verwenden Sie diese Struktur, um Datumsangaben und Uhrzeiten zu verarbeiten, deren Abweichung von der UTC bekannt ist. Die DateTimeOffset-Struktur kombiniert einen Datums- und Uhrzeitwert mit der Abweichung dieser Uhrzeit von der UTC. Aufgrund der Beziehung zur UTC kann ein einzelner Datums- und Uhrzeitwert einen bestimmten Zeitpunkt eindeutig identifizieren. Daher lassen sich DateTimeOffset-Werte einfacher von einem Computer auf einen anderen übertragen als DateTime-Werte.

Ab .NET 6 sind die folgenden Typen verfügbar:

  • DateOnly

    Verwenden Sie diese Struktur, wenn Sie mit einem Wert arbeiten, der nur ein Datum darstellt. Das Datum stellt den gesamten Tag vom Anfang bis zum Ende des Tages dar. DateOnly hat einen Bereich von 0001-01-01 bis 9999-12-31. Dieser Typ stellt die Kombination aus Monat, Tag und Jahr ohne eine bestimmte Uhrzeit dar. Wenn Sie zuvor den DateTime-Typ in Ihrem Code verwendet haben, um ein Datum ohne Uhrzeit darzustellen, verwenden Sie stattdessen diesen Typ.

  • TimeOnly

    Verwenden Sie diese Struktur, um eine Uhrzeit ohne Datum darzustellen. Die Uhrzeit stellt die Stunden, Minuten und Sekunden eines nicht spezifischen Tages dar. TimeOnly hat einen Bereich von 00:00:00.0000000 bis 23:59:59.9999999. Dieser Typ kann verwendet werden, um die Typen DateTime und TimeSpan in Ihrem Code zu ersetzen, wenn Sie diese verwendet haben, um eine Uhrzeit darzustellen.

Im nächsten Abschnitt erhalten Sie die nötigen Informationen, um mit Zeitzonen zu arbeiten und zeitzonenkompatible Anwendungen zu entwickeln, die Datumsangaben und Uhrzeiten zwischen verschiedenen Zeitzonen konvertieren können.

In diesem Abschnitt

Übersicht über Zeitzonen
Beschreibt Terminologie, Konzepte und Probleme im Zusammenhang mit der Erstellung zeitzonenkompatibler Anwendungen.

Auswählen zwischen DateTime, DateTimeOffset, TimeSpan und TimeZoneInfo
Beschreibt die Verwendung der Typen DateTime, DateTimeOffset und TimeZoneInfo bei der Arbeit mit Datums- und Uhrzeitdaten

Suchen der in einem lokalen System definierten Zeitzonen
Beschreibt, wie die Zeitzonen auf einem lokalen System aufgelistet werden.

Vorgehensweise: Aufzählen der auf einem Computer vorhandenen Zeitzonen
Stellt Beispiele für die Aufzählung der Zeitzonen bereit, die in der Registrierung eines Computers definiert sind und dem Benutzer die Auswahl einer vordefinierten Zeitzone aus einer Liste ermöglichen.

Vorgehensweise: Zugreifen auf die vordefinierte UTC und lokale Zeitzonenobjekte
Beschreibt, wie auf koordinierte Weltzeit und auf die lokale Zeitzone zugegriffen wird.

Vorgehensweise: Instanziieren eines TimeZoneInfo-Objekts
Beschreibt, wie ein TimeZoneInfo-Objekt aus der Registrierung des lokalen Systems instanziiert wird

Instanziieren eines DateTimeOffset-Objekts
Beschreibt die Möglichkeiten zur Instanziierung eines DateTimeOffset-Objekts und die Möglichkeiten zur Konvertierung eines DateTime-Werts in einen DateTimeOffset-Wert

Vorgehensweise: Erstellen von Zeitzonen ohne Anpassungsregeln
Beschreibt, wie eine benutzerdefinierte Zeitzone erstellt wird, die die Umstellung von Sommerzeit auf Normalzeit und umgekehrt nicht unterstützt.

Vorgehensweise: Erstellen von Zeitzonen mit Anpassungsregeln
Beschreibt, wie eine benutzerdefinierte Zeitzone erstellt wird, die eine oder mehrere Umstellungen von Sommerzeit auf Normalzeit und umgekehrt unterstützt.

Speichern und Wiederherstellen von Zeitzonen
Beschreibt die Unterstützung von TimeZoneInfo für die Serialisierung und Deserialisierung von Zeitzonendaten und veranschaulicht einige der Szenarios, in denen diese Features verwendet werden können

Vorgehensweise: Speichern von Zeitzonen in einer eingebetteten Ressource
Beschreibt, wie eine benutzerdefinierte Zeitzone erstellt und die zugehörigen Informationen in einer Ressourcendatei gespeichert werden.

Vorgehensweise: Wiederherstellen von Zeitzonen aus einer eingebetteten Ressource
Beschreibt, wie in einer eingebetteten Ressourcendatei gespeicherte benutzerdefinierte Zeitzonen instanziiert werden.

Durchführen arithmetischer Datums- und Uhrzeitoperationen
Beschreibt die Probleme beim Addieren, Subtrahieren und Vergleichen von DateTime- und DateTimeOffset-Werten

Vorgehensweise: Verwenden von Zeitzonen in arithmetischen Datums- und Uhrzeitoperationen
Erläutert, wie arithmetische Datums- und Uhrzeitoperationen ausgeführt werden, die die Anpassungsregeln einer Zeitzone widerspiegeln.

Konvertieren zwischen DateTime und DateTimeOffset
Beschreibt die Konvertierung zwischen DateTime- und DateTimeOffset-Werten

Konvertieren von Uhrzeiten zwischen Zeitzonen
Beschreibt, wie Uhrzeiten von einer Zeitzone in eine andere konvertiert werden.

Vorgehensweise: Auflösen mehrdeutiger Zeitangaben
Beschreibt, wie eine mehrdeutige Zeit aufgelöst wird, indem sie der Normalzeit der Zeitzone zugeordnet wird.

Vorgehensweise: Auflösen mehrdeutiger Zeitangaben durch Benutzer*innen
Beschreibt, wie ein Benutzer die Zuordnung zwischen einer mehrdeutigen Ortszeit und der koordinierten Weltzeit bestimmt.

Verweis

System.TimeZoneInfo