Freigeben über


Vorgehensweise: Erstellen von Zeitzonen ohne Anpassungsregeln

Die genauen Zeitzoneninformationen, die von einer Anwendung benötigt werden, können aus mehreren Gründen nicht auf einem bestimmten System vorhanden sein:

  • Die Zeitzone wurde nie in der Registrierung des lokalen Systems definiert.

  • Daten zur Zeitzone wurden geändert oder aus der Registrierung entfernt.

  • Die Zeitzone ist vorhanden, enthält aber keine genauen Informationen zu Zeitzonenanpassungen für einen bestimmten historischen Zeitraum.

In diesen Fällen können Sie die CreateCustomTimeZone Methode aufrufen, um die zeitzone zu definieren, die von Ihrer Anwendung benötigt wird. Sie können die Überladungen dieser Methode verwenden, um eine Zeitzone mit oder ohne Anpassungsregeln zu erstellen. Wenn die Zeitzone Sommerzeit unterstützt, können Sie Anpassungen mit festen oder variablen Anpassungsregeln definieren. (Definitionen dieser Begriffe finden Sie im Abschnitt "Zeitzonenterminologie" in der Zeitzonenübersicht.)

Von Bedeutung

Benutzerdefinierte Zeitzonen, die durch Aufrufen der CreateCustomTimeZone Methode erstellt wurden, werden der Registrierung nicht hinzugefügt. Stattdessen kann nur über den Objektverweis zugegriffen werden, der CreateCustomTimeZone vom Methodenaufruf zurückgegeben wird.

In diesem Thema wird gezeigt, wie Sie eine Zeitzone ohne Anpassungsregeln erstellen. Informationen zum Erstellen einer Zeitzone, die Sommerzeitanpassungsregeln unterstützt, finden Sie unter How to: Create time zones with adjustment rules.

So erstellen Sie eine Zeitzone ohne Anpassungsregeln

  1. Definieren Sie den Anzeigenamen der Zeitzone.

    Der Anzeigename folgt einem ziemlich standardformat, in dem der Abstand der Zeitzone von koordinierter Weltzeit (UTC) in Klammern eingeschlossen ist und eine Zeichenfolge folgt, die die Zeitzone, eine oder mehrere Der Städte in der Zeitzone oder mindestens eine der Länder oder Regionen in der Zeitzone angibt.

  2. Definieren Sie den Namen der Standardzeit der Zeitzone. In der Regel wird diese Zeichenfolge auch als Bezeichner der Zeitzone verwendet.

  3. Wenn Sie einen anderen Bezeichner als den Standardnamen der Zeitzone verwenden möchten, definieren Sie den Zeitzonenbezeichner.

  4. Instanziieren Sie ein TimeSpan Objekt, das den Offset der Zeitzone von UTC definiert. Zeitzonen mit Zeiten, die später als UTC liegen, weisen einen positiven Offset auf. Zeitzonen mit Zeiten, die vor UTC liegen, weisen einen negativen Offset auf.

  5. Rufen Sie die TimeZoneInfo.CreateCustomTimeZone(String, TimeSpan, String, String) Methode auf, um die neue Zeitzone zu instanziieren.

Beispiel

Das folgende Beispiel definiert eine benutzerdefinierte Zeitzone für Mawson, Antarktis, die keine Anpassungsregeln enthält.

string displayName = "(GMT+06:00) Antarctica/Mawson Time";
string standardName = "Mawson Time";
TimeSpan offset = new(06, 00, 00);
TimeZoneInfo mawson = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName);
Console.WriteLine($"The current time is {TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.Local, mawson)} {mawson.StandardName}");
Dim displayName As String = "(GMT+06:00) Antarctica/Mawson Time"
Dim standardName As String = "Mawson Time"
Dim offset As TimeSpan = New TimeSpan(06, 00, 00)
Dim mawson As TimeZoneInfo = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName)
Console.WriteLine("The current time is {0} {1}", _
                  TimeZoneInfo.ConvertTime(Date.Now, TimeZoneInfo.Local, mawson), _
                  mawson.StandardName)

Die der DisplayName-Eigenschaft zugewiesene Zeichenfolge folgt einem Standardformat, in dem der Offset der Zeitzone von UTC gefolgt von einer anzeigefreundlichen Beschreibung der Zeitzone dargestellt wird.

Kompilieren des Codes

In diesem Beispiel ist Folgendes erforderlich:

  • Die folgenden Namespaces sollen importiert werden:

    using System.Collections.Generic;
    
    Imports System.Collections.Generic
    Imports System.Collections.ObjectModel
    
    

Siehe auch