Gewusst wie: Erstellen von Zeitzonen ohne Anpassungsregeln
Aktualisiert: November 2007
Die genauen Zeitzonendaten, die eine Anwendung benötigt, können aus mehreren Gründen auf einem bestimmten System nicht vorhanden sein:
Die Zeitzone wurde zuvor noch nicht in der Registrierung des lokalen Systems definiert.
Daten der Zeitzone wurden geändert oder aus der Registrierung entfernt.
Die Zeitzone ist vorhanden, weist jedoch keine genauen Informationen über Zeitzonenanpassungen für einen bestimmten historischen Zeitraum auf.
In diesen Fällen können Sie die CreateCustomTimeZone-Methode aufrufen, um die von der Anwendung benötigte Zeitzone zu definieren. Sie können die Überladungen dieser Methode zum Erstellen einer Zeitzone mit oder ohne Anpassungsregeln verwenden. Wenn die Zeitzone die Sommerzeit unterstützt, können Sie Anpassungen mit festen oder beweglichen Anpassungsregeln definieren. (Definitionen dieser Begriffe finden Sie im Abschnitt "Zeitzonenterminologie" unter Übersicht über Zeitzonen.)
Wichtiger Hinweis: |
---|
Benutzerdefinierte Zeitzonen, die durch Aufrufen der CreateCustomTimeZone-Methode erstellt werden, werden nicht zur Registrierung hinzugefügt. Stattdessen kann nur über den Objektverweis, der vom Aufruf der CreateCustomTimeZone-Methode zurückgegeben wird, darauf zugegriffen werden. |
In diesem Thema wird erläutert, wie Sie eine Zeitzone ohne Anpassungsregeln erstellen. Informationen zum Erstellen einer Zeitzone, die Anpassungsregeln für die Sommerzeit unterstützt, finden Sie unter Gewusst wie: Erstellen von Zeitzonen mit Anpassungsregeln.
So erstellen Sie eine Zeitzone ohne Anpassungsregeln
Definieren Sie den Anzeigenamen der Zeitzone.
Der Anzeigename folgt einem gewissen Standardformat. Hierbei wird der Offset der Zeitzone von der koordinierten Weltzeit (Coordinated Universal Time, UTC) in Klammern eingeschlossen, gefolgt von einer Zeichenfolge, die die Zeitzone, einen oder mehrere Orte in der Zeitzone oder ein oder mehrere Länder oder Regionen in der Zeitzone identifiziert.
Definieren Sie den Namen der Normalzeit der Zeitzone. Diese Zeichenfolge wird normalerweise auch als der Bezeichner der Zeitzone verwendet.
Wenn Sie einen anderen Bezeichner als den Standardnamen der Zeitzone verwenden möchten, definieren Sie den Zeitzonenbezeichner.
Instanziieren Sie ein TimeSpan-Objekt, das den Offset der Zeitzone von UTC definiert. Zeitzonen mit Uhrzeiten, die nach UTC liegen, weisen einen positiven Offset auf. Zeitzonen mit Uhrzeiten, die vor UTC liegen, weisen einen negativen Offset auf.
Rufen Sie die TimeZoneInfo.CreateCustomTimeZone(String, TimeSpan, String, String)-Methode auf, um die neue Zeitzone zu instanziieren.
Beispiel
Im folgenden Beispiel wird eine benutzerdefinierte Zeitzone für Mawson, Antarktis, definiert, die keine Anpassungsregeln verwendet.
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)
string displayName = "(GMT+06:00) Antarctica/Mawson Time";
string standardName = "Mawson Time";
TimeSpan offset = new TimeSpan(06, 00, 00);
TimeZoneInfo mawson = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName);
Console.WriteLine("The current time is {0} {1}",
TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.Local, mawson),
mawson.StandardName);
Die Zeichenfolge, die der DisplayName-Eigenschaft zugewiesen ist, weist ein standardmäßiges Format auf, bei dem auf den Offset der Zeitzone von UTC eine benutzerfreundliche Beschreibung der Zeitzone folgt.
Kompilieren des Codes
Für dieses Beispiel ist Folgendes erforderlich:
Dem Projekt muss ein Verweis auf System.Core.dll hinzugefügt werden.
Die folgenden Namespaces müssen importiert werden:
Imports System.Collections.Generic Imports System.Collections.ObjectModel
using System.Collections.Generic; using System.Collections.ObjectModel;
Siehe auch
Aufgaben
Gewusst wie: Erstellen von Zeitzonen mit Anpassungsregeln