Teilen über


TimeZoneInfo.CreateCustomTimeZone Methode

Definition

Definiert eine Zeitzone, die auf dem lokalen Computer nicht gefunden wird.

Überlädt

CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[], Boolean)

Erstellt eine benutzerdefinierte Zeitzone mit einem angegebenen Bezeichner, einem Offset von Coordinated Universal Time (UTC), einem Anzeigenamen, einem Namen für die Standardzeit, einen Namen für die Sommerzeit, Regeln für die Sommerzeit und einem Wert, der angibt, ob das zurückgegebene Objekt Sommerzeitinformationen darstellt.

CreateCustomTimeZone(String, TimeSpan, String, String)

Erstellt eine benutzerdefinierte Zeitzone mit einem angegebenen Bezeichner, einem Offset von Coordinated Universal Time (UTC), einem Anzeigenamen und einem Anzeigenamen für die Standardzeit.

CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[])

Erstellt eine benutzerdefinierte Zeitzone mit einem angegebenen Bezeichner, einem Offset von Coordinated Universal Time (UTC), einem Anzeigenamen, einem Namen für die Standardzeit, einen Namen für die Sommerzeit und Regeln für die Sommerzeit.

CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[], Boolean)

Quelle:
TimeZoneInfo.cs
Quelle:
TimeZoneInfo.cs
Quelle:
TimeZoneInfo.cs

Erstellt eine benutzerdefinierte Zeitzone mit einem angegebenen Bezeichner, einem Offset von Coordinated Universal Time (UTC), einem Anzeigenamen, einem Namen für die Standardzeit, einen Namen für die Sommerzeit, Regeln für die Sommerzeit und einem Wert, der angibt, ob das zurückgegebene Objekt Sommerzeitinformationen darstellt.

public:
 static TimeZoneInfo ^ CreateCustomTimeZone(System::String ^ id, TimeSpan baseUtcOffset, System::String ^ displayName, System::String ^ standardDisplayName, System::String ^ daylightDisplayName, cli::array <TimeZoneInfo::AdjustmentRule ^> ^ adjustmentRules, bool disableDaylightSavingTime);
public static TimeZoneInfo CreateCustomTimeZone (string id, TimeSpan baseUtcOffset, string? displayName, string? standardDisplayName, string? daylightDisplayName, TimeZoneInfo.AdjustmentRule[]? adjustmentRules, bool disableDaylightSavingTime);
public static TimeZoneInfo CreateCustomTimeZone (string id, TimeSpan baseUtcOffset, string displayName, string standardDisplayName, string daylightDisplayName, TimeZoneInfo.AdjustmentRule[] adjustmentRules, bool disableDaylightSavingTime);
static member CreateCustomTimeZone : string * TimeSpan * string * string * string * TimeZoneInfo.AdjustmentRule[] * bool -> TimeZoneInfo
Public Shared Function CreateCustomTimeZone (id As String, baseUtcOffset As TimeSpan, displayName As String, standardDisplayName As String, daylightDisplayName As String, adjustmentRules As TimeZoneInfo.AdjustmentRule(), disableDaylightSavingTime As Boolean) As TimeZoneInfo

Parameter

id
String

Der Zeitzonenbezeichner.

baseUtcOffset
TimeSpan

Ein TimeSpan-Objekt, das den Zeitunterschied zwischen dieser Zeitzone und Coordinated Universal Time (UTC) darstellt.

displayName
String

Der Anzeigename der neuen Zeitzone.

standardDisplayName
String

Der Name der Standardzeit der neuen Zeitzone.

daylightDisplayName
String

Der Name der Sommerzeit der neuen Zeitzone.

adjustmentRules
TimeZoneInfo.AdjustmentRule[]

Ein Array von TimeZoneInfo.AdjustmentRule-Objekten, die den UTC-Basisoffset für einen bestimmten Zeitraum erhöhen.

disableDaylightSavingTime
Boolean

true, um alle Sommerzeitinformationen in adjustmentRules mit dem neuen Objekt zu verwerfen, andernfalls false.

Gibt zurück

Die neue Zeitzone. Wenn der disableDaylightSavingTime-Parameter true ist, verfügt das zurückgegebene Objekt nicht über Sommerzeitdaten.

Ausnahmen

Der id-Parameter ist null.

Der id-Parameter ist eine leere Zeichenfolge ("").

- oder -

Der baseUtcOffset-Parameter gibt keine ganze Zahl von Minuten an.

Der Wert des baseUtcOffset-Parameters ist größer als 14 Stunden oder kleiner als -14 Stunden.

Die im adjustmentRules-Parameter angegebenen Anpassungsregeln überlappen sich.

- oder -

Die im adjustmentRules-Parameter angegebenen Anpassungsregeln sind nicht in chronologischer Reihenfolge.

- oder -

Mindestens ein adjustmentRules-Element ist null.

- oder -

Auf ein Datum können mehrere Anpassungsregeln angewendet werden.

- oder -

Die Summe aus dem baseUtcOffset-Parameter und dem DaylightDelta-Wert von einem oder mehreren Objekten im adjustmentRules-Array liegt über 14 Stunden oder unter -14 Stunden.

Beispiele

Im folgenden Beispiel wird eine benutzerdefinierte Zeitzone für die Palmer-Station und die Anvers-Insel in der Antarktis erstellt. Der Parameter im Aufruf der TimeZoneInfo.CreateCustomTimeZone -Methode wird auf truefestgelegtdisableDaylightSavingTime. Anschließend wird der Name der neuen Zeitzone für die Sommerzeit angezeigt, sofern vorhanden, und die Anzahl der Anpassungsregeln, um zu bestätigen, dass die neue Zeitzone keine Sommerzeitinformationen enthält.

// Define transition times to/from DST
TimeZoneInfo.TransitionTime startTransition, endTransition;
startTransition = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 4, 0, 0),
                                                                  10, 2, DayOfWeek.Sunday); 
endTransition = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1,3, 0, 0), 
                                                                3, 2, DayOfWeek.Sunday);
// Define adjustment rule
TimeSpan delta = new TimeSpan(1, 0, 0);
TimeZoneInfo.AdjustmentRule adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(new DateTime(1999, 10, 1), 
                                      DateTime.MaxValue.Date, delta, startTransition, endTransition);
// Create array for adjustment rules
TimeZoneInfo.AdjustmentRule[] adjustments = {adjustment};
// Define other custom time zone arguments
string displayName = "(GMT-04:00) Antarctica/Palmer Time";
string standardName = "Palmer Standard Time";
string daylightName = "Palmer Daylight Time";
TimeSpan offset = new TimeSpan(-4, 0, 0);
// Create custom time zone without copying DST information
TimeZoneInfo palmer = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName, 
                                                  daylightName, adjustments, true);
// Indicate whether new time zone//s adjustment rules are present
Console.WriteLine("{0} {1}has {2} adjustment rules.", 
                  palmer.StandardName, 
                  ! (string.IsNullOrEmpty(palmer.DaylightName)) ?  "(" + palmer.DaylightName + ") ": "" , 
                  palmer.GetAdjustmentRules().Length);
// Indicate whether new time zone supports DST
Console.WriteLine("{0} supports DST: {1}", palmer.StandardName, palmer.SupportsDaylightSavingTime);
// Define transition times to/from DST
let startTransition = 
    TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 4, 0, 0), 10, 2, DayOfWeek.Sunday) 
let endTransition = 
    TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1,3, 0, 0), 3, 2, DayOfWeek.Sunday)
// Define adjustment rule
let delta = TimeSpan(1, 0, 0)
let adjustment = 
    TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(DateTime(1999, 10, 1), DateTime.MaxValue.Date, delta, startTransition, endTransition)
// Create array for adjustment rules
let adjustments = [| adjustment |]
// Define other custom time zone arguments
let displayName = "(GMT-04:00) Antarctica/Palmer Time"
let standardName = "Palmer Standard Time"
let daylightName = "Palmer Daylight Time"
let offset = TimeSpan(-4, 0, 0)
// Create custom time zone without copying DST information
let palmer = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName, daylightName, adjustments, true)
// Indicate whether time zone//s adjustment rules are present
printfn $"""{palmer.StandardName} {if String.IsNullOrEmpty palmer.DaylightName then "" else "(" + palmer.DaylightName + ")"}has {palmer.GetAdjustmentRules().Length} adjustment rules."""
// Indicate whether time zone supports DST
printfn $"{palmer.StandardName} supports DST: {palmer.SupportsDaylightSavingTime}"
' Define transition times to/from DST
Dim startTransition As TimeZoneInfo.TransitionTime = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#04:00:00#, 10, 2, DayOfWeek.Sunday) 
Dim endTransition As TimeZoneInfo.TransitionTime = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#3:00:00#, 3, 2, DayOfWeek.Sunday)
' Define adjustment rule
Dim delta As TimeSpan = New TimeSpan(1, 0, 0)
Dim adjustment As TimeZoneInfo.AdjustmentRule = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(#10/01/1999#, Date.MaxValue.Date, delta, startTransition, endTransition)
' Create array for adjustment rules
Dim adjustments() As TimeZoneInfo.AdjustmentRule = {adjustment}
' Define other custom time zone arguments
Dim displayName As String = "(GMT-04:00) Antarctica/Palmer Time"
Dim standardName As String = "Palmer Standard Time"
Dim daylightName As String = "Palmer Daylight Time"
Dim offset As TimeSpan = New TimeSpan(-4, 0, 0)
Dim palmer As TimeZoneInfo = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName, daylightName, adjustments, True)
' Indicate whether new time zone's adjustment rules are present
Console.WriteLine("{0} {1}has {2} adjustment rules.", _
                  palmer.StandardName, _
                  IIf(Not String.IsNullOrEmpty(palmer.DaylightName), "(" & palmer.DaylightName & ") ", ""), _
                  palmer.GetAdjustmentRules().Length)
' Indicate whether new time zone supports DST
Console.WriteLine("{0} supports DST: {1}", palmer.StandardName, palmer.SupportsDaylightSavingTime)

Hinweise

Sie können diese Überladung der TimeZoneInfo.CreateCustomTimeZone -Methode verwenden, um eine benutzerdefinierte Zeitzone zu erstellen, deren Unterstützung für sommerzeit durch Bedingungen zur Laufzeit bestimmt werden kann.

Die folgende Tabelle zeigt die Beziehung zwischen den Parametern, die für die TimeZoneInfo.CreateCustomTimeZone -Methode bereitgestellt werden, und den Membern des TimeZoneInfo Objekts, die vom Methodenaufruf zurückgegeben werden.

CreateCustomTimeZone-Parameter TimeZoneInfo-Eigenschaft
id Id
baseUtcOffset BaseUtcOffset
displayName DisplayName
standardDisplayName StandardName
daylightDisplayName DaylightName , wenn disableDaylightSavingTime ist false; String.Empty , wenn disableDaylightSavingTime ist true.
adjustmentRules Ein Array von TimeZoneInfo.AdjustmentRule -Objekten, das von der GetAdjustmentRules -Methode zurückgegeben wird, wenn disableDaylightSavingTime ist false; ein leeres Array, das von der GetAdjustmentRules -Methode zurückgegeben wird, wenn disableDaylightSavingTime ist true.
disableDaylightSavingTime Nicht SupportsDaylightSavingTime.

In der Regel sind der Standardzeitname der Zeitzone und der zugehörige Bezeichner identisch. Die Länge des Zeitzonenbezeichners darf jedoch nicht länger als 32 Zeichen sein. Die an den displayName Parameter übergebene Zeichenfolge hat ein recht normales Format. Der erste Teil des Anzeigenamens ist der Basisoffset der Zeitzone von der koordinierten Weltzeit, der durch das Akronym GMT (für Greenwich Mean Time) in Klammern angegeben wird. Darauf folgt eine Zeichenfolge, die die Zeitzone selbst oder eine oder mehrere Städte, Regionen oder Länder in der Zeitzone oder beides identifiziert. Beispiel:

(GMT+02:00) Athens, Beirut, Istanbul, Minsk
(GMT-02:00) Mid-Atlantic
(GMT-07:00) Mountain Time (US & Canada)

Die Anpassungsregeln einer Zeitzone werden wie folgt definiert:

  1. Aufrufen der CreateFloatingDateRule -Methode oder der CreateFixedDateRule -Methode, um die Anfangs- und Endübergangsregeln für jede Anpassungsregel zu definieren.

  2. Aufrufen der CreateAdjustmentRule -Methode für jede Anpassungsregel.

  3. Zuweisen der Anpassungsregeln zu einem Array, das als adjustmentRules Parameter übergeben werden kann.

Wenn disableDaylightSavingTime der Parameter ist false, ist der Vorgang dieser Methode mit der TimeZoneInfo.CreateCustomTimeZone -Überladung identisch. Wenn disableDaylightSavingTime ist true, enthält das zurückgegebene Objekt keine Anpassungsregeln und eine DaylightName Eigenschaft, deren Wert eine leere Zeichenfolge ist.

Weitere Informationen

Gilt für:

CreateCustomTimeZone(String, TimeSpan, String, String)

Quelle:
TimeZoneInfo.cs
Quelle:
TimeZoneInfo.cs
Quelle:
TimeZoneInfo.cs

Erstellt eine benutzerdefinierte Zeitzone mit einem angegebenen Bezeichner, einem Offset von Coordinated Universal Time (UTC), einem Anzeigenamen und einem Anzeigenamen für die Standardzeit.

public:
 static TimeZoneInfo ^ CreateCustomTimeZone(System::String ^ id, TimeSpan baseUtcOffset, System::String ^ displayName, System::String ^ standardDisplayName);
public static TimeZoneInfo CreateCustomTimeZone (string id, TimeSpan baseUtcOffset, string? displayName, string? standardDisplayName);
public static TimeZoneInfo CreateCustomTimeZone (string id, TimeSpan baseUtcOffset, string displayName, string standardDisplayName);
static member CreateCustomTimeZone : string * TimeSpan * string * string -> TimeZoneInfo
Public Shared Function CreateCustomTimeZone (id As String, baseUtcOffset As TimeSpan, displayName As String, standardDisplayName As String) As TimeZoneInfo

Parameter

id
String

Der Zeitzonenbezeichner.

baseUtcOffset
TimeSpan

Ein Objekt, das den Zeitunterschied zwischen dieser Zeitzone und Coordinated Universal Time (UTC) darstellt.

displayName
String

Der Anzeigename der neuen Zeitzone.

standardDisplayName
String

Der Name der Standardzeit der neuen Zeitzone.

Gibt zurück

Die neue Zeitzone.

Ausnahmen

Der id-Parameter ist null.

Der id-Parameter ist eine leere Zeichenfolge ("").

- oder -

Der baseUtcOffset-Parameter gibt keine ganze Zahl von Minuten an.

Der Wert des baseUtcOffset-Parameters ist größer als 14 Stunden oder kleiner als -14 Stunden.

Beispiele

Im folgenden Beispiel wird eine benutzerdefinierte Zeitzone für die Regionen Mawson und Holme Bay in der Antarktis erstellt. Anschließend wird das Ergebnis der Konvertierung der Ortszeit in die Uhrzeit in der neuen Zeitzone angezeigt.

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);
let displayName = "(GMT+06:00) Antarctica/Mawson Time"
let standardName = "Mawson Time" 
let offset = TimeSpan(06, 00, 00)
let mawson = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName)
printfn $"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)

Hinweise

Diese Überladung der CreateCustomTimeZone(String, TimeSpan, String, String) -Methode eignet sich zum Erstellen einer Zeitzone ohne Anpassungen (d.a. eine Zeitzone, die keine Sommerzeit unterstützt). Verwenden Sie entweder die - oder -Methode, um eine Zeitzone zu definieren, die Anpassungen für die TimeZoneInfo.CreateCustomTimeZoneTimeZoneInfo.CreateCustomTimeZone Sommerzeit enthält.

Die folgende Tabelle zeigt die Beziehung zwischen den Parametern, die für die TimeZoneInfo.CreateCustomTimeZone -Methode bereitgestellt werden, und den Eigenschaften des TimeZoneInfo Objekts, die vom Methodenaufruf zurückgegeben werden.

CreateCustomTimeZone-Parameter TimeZoneInfo-Eigenschaft
id Id
baseUtcOffset BaseUtcOffset
displayName DisplayName
standardDisplayName StandardName

In der Regel sind der Standardzeitname der Zeitzone und der zugehörige Bezeichner identisch. Die Länge des Zeitzonenbezeichners darf jedoch nicht länger als 32 Zeichen sein. Die an den displayName Parameter übergebene Zeichenfolge hat ein recht normales Format. Der erste Teil des Anzeigenamens ist der Basisoffset der Zeitzone von der koordinierten Weltzeit, der durch das Akronym GMT (für Greenwich Mean Time) in Klammern angegeben wird. Darauf folgt eine Zeichenfolge, die die Zeitzone selbst oder eine oder mehrere Städte, Regionen oder Länder in der Zeitzone oder beides identifiziert. Beispiel:

(GMT+02:00) Athens, Beirut, Istanbul, Minsk
(GMT-02:00) Mid-Atlantic
(GMT-07:00) Mountain Time (US & Canada)

Weitere Informationen

Gilt für:

CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[])

Quelle:
TimeZoneInfo.cs
Quelle:
TimeZoneInfo.cs
Quelle:
TimeZoneInfo.cs

Erstellt eine benutzerdefinierte Zeitzone mit einem angegebenen Bezeichner, einem Offset von Coordinated Universal Time (UTC), einem Anzeigenamen, einem Namen für die Standardzeit, einen Namen für die Sommerzeit und Regeln für die Sommerzeit.

public:
 static TimeZoneInfo ^ CreateCustomTimeZone(System::String ^ id, TimeSpan baseUtcOffset, System::String ^ displayName, System::String ^ standardDisplayName, System::String ^ daylightDisplayName, cli::array <TimeZoneInfo::AdjustmentRule ^> ^ adjustmentRules);
public static TimeZoneInfo CreateCustomTimeZone (string id, TimeSpan baseUtcOffset, string? displayName, string? standardDisplayName, string? daylightDisplayName, TimeZoneInfo.AdjustmentRule[]? adjustmentRules);
public static TimeZoneInfo CreateCustomTimeZone (string id, TimeSpan baseUtcOffset, string displayName, string standardDisplayName, string daylightDisplayName, TimeZoneInfo.AdjustmentRule[] adjustmentRules);
static member CreateCustomTimeZone : string * TimeSpan * string * string * string * TimeZoneInfo.AdjustmentRule[] -> TimeZoneInfo
Public Shared Function CreateCustomTimeZone (id As String, baseUtcOffset As TimeSpan, displayName As String, standardDisplayName As String, daylightDisplayName As String, adjustmentRules As TimeZoneInfo.AdjustmentRule()) As TimeZoneInfo

Parameter

id
String

Der Zeitzonenbezeichner.

baseUtcOffset
TimeSpan

Ein Objekt, das den Zeitunterschied zwischen dieser Zeitzone und Coordinated Universal Time (UTC) darstellt.

displayName
String

Der Anzeigename der neuen Zeitzone.

standardDisplayName
String

Der Name der Standardzeit der neuen Zeitzone.

daylightDisplayName
String

Der Name der Sommerzeit der neuen Zeitzone.

adjustmentRules
TimeZoneInfo.AdjustmentRule[]

Ein Array, das den UTC-Basisoffset für einen bestimmten Zeitraum erhöht.

Gibt zurück

Ein TimeZoneInfo-Objekt, das die neue Zeitzone darstellt.

Ausnahmen

Der id-Parameter ist null.

Der id-Parameter ist eine leere Zeichenfolge ("").

- oder -

Der baseUtcOffset-Parameter gibt keine ganze Zahl von Minuten an.

Der Wert des baseUtcOffset-Parameters ist größer als 14 Stunden oder kleiner als -14 Stunden.

Die im adjustmentRules-Parameter angegebenen Anpassungsregeln überlappen sich.

- oder -

Die im adjustmentRules-Parameter angegebenen Anpassungsregeln sind nicht in chronologischer Reihenfolge.

- oder -

Mindestens ein adjustmentRules-Element ist null.

- oder -

Auf ein Datum können mehrere Anpassungsregeln angewendet werden.

- oder -

Die Summe aus dem baseUtcOffset-Parameter und dem DaylightDelta-Wert von einem oder mehreren Objekten im adjustmentRules-Array liegt über 14 Stunden oder unter -14 Stunden.

Beispiele

Im folgenden Beispiel wird eine benutzerdefinierte Zeitzone für die Palmer-Station und die Anvers-Insel in der Antarktis erstellt. Anschließend wird die Ortszeit in die Uhrzeit in der neuen Zeitzone konvertiert und das Ergebnis angezeigt.

// Define transition times to/from DST
TimeZoneInfo.TransitionTime startTransition, endTransition;
startTransition = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 4, 0, 0), 
                                                                  10, 2, DayOfWeek.Sunday); 
endTransition = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 3, 0, 0), 
                                                                3, 2, DayOfWeek.Sunday);
// Define adjustment rule
TimeSpan delta = new TimeSpan(1, 0, 0);
TimeZoneInfo.AdjustmentRule adjustment;
adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(new DateTime(1999, 10, 1), DateTime.MaxValue.Date, delta, startTransition, endTransition);
// Create array for adjustment rules
TimeZoneInfo.AdjustmentRule[] adjustments = {adjustment};
// Define other custom time zone arguments
string displayName = "(GMT-04:00) Antarctica/Palmer Time";
string standardName = "Palmer Time";
string daylightName = "Palmer Daylight Time";
TimeSpan offset = new TimeSpan(-4, 0, 0);
TimeZoneInfo palmer = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName, daylightName, adjustments);
Console.WriteLine("The current time is {0} {1}",  
                  TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.Local, palmer), 
                  palmer.StandardName);
// Define transition times to/from DST
let startTransition = 
    TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 4, 0, 0), 10, 2, DayOfWeek.Sunday) 
let endTransition = 
    TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 3, 0, 0), 3, 2, DayOfWeek.Sunday)
// Define adjustment rule
let delta = TimeSpan(1, 0, 0)
let adjustment = 
    TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(DateTime(1999, 10, 1), DateTime.MaxValue.Date, delta, startTransition, endTransition)
// Create array for adjustment rules
let adjustments = [| adjustment |]
// Define other custom time zone arguments
let displayName = "(GMT-04:00) Antarctica/Palmer Time"
let standardName = "Palmer Time"
let daylightName = "Palmer Daylight Time"
let offset = TimeSpan(-4, 0, 0)
let palmer = 
    TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName, daylightName, adjustments)
printfn $"The current time is {TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.Local, palmer)} {palmer.StandardName}"
' Define transition times to/from DST
Dim startTransition As TimeZoneInfo.TransitionTime = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#04:00:00#, 10, 2, DayOfWeek.Sunday) 
Dim endTransition As TimeZoneInfo.TransitionTime = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#3:00:00#, 3, 2, DayOfWeek.Sunday)
' Define adjustment rule
Dim delta As TimeSpan = New TimeSpan(1, 0, 0)
Dim adjustment As TimeZoneInfo.AdjustmentRule = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(#10/01/1999#, Date.MaxValue.Date, delta, startTransition, endTransition)
' Create array for adjustment rules
Dim adjustments() As TimeZoneInfo.AdjustmentRule = {adjustment}
' Define other custom time zone arguments
Dim DisplayName As String = "(GMT-04:00) Antarctica/Palmer Time"
Dim standardName As String = "Palmer Standard Time"
Dim daylightName As String = "Palmer Daylight Time"
Dim offset As TimeSpan = New TimeSpan(-4, 0, 0)
Dim palmer As TimeZoneInfo = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName, daylightName, adjustments)
Console.WriteLine("The current time is {0} {1}", _ 
                  TimeZoneInfo.ConvertTime(Date.Now, TimeZoneInfo.Local, palmer), _
                  palmer.StandardName)

Hinweise

Diese Überladung der TimeZoneInfo.CreateCustomTimeZone Methode eignet sich zum Erstellen einer Zeitzone, die die Sommerzeit unterstützt. Verwenden Sie entweder die - oder -Methode, um eine Zeitzone zu definieren, die TimeZoneInfo.CreateCustomTimeZoneTimeZoneInfo.CreateCustomTimeZone keine Sommerzeit unterstützt.

Die folgende Tabelle zeigt die Beziehung zwischen den Parametern, die für die TimeZoneInfo.CreateCustomTimeZone -Methode bereitgestellt werden, und den Elementen des -Objekts, die TimeZoneInfo vom Methodenaufruf zurückgegeben werden.

CreateCustomTimeZone-Parameter TimeZoneInfo-Member
id Id
baseUtcOffset BaseUtcOffset
displayName DisplayName
standardDisplayName StandardName
daylightDisplayName DaylightName
adjustmentRules Ein Array von System.TimeZoneInfo.AdjustmentRule Objekten, die von der GetAdjustmentRules -Methode zurückgegeben werden.

In der Regel sind der Standardzeitname und der Bezeichner der Zeitzone identisch. Die Länge des Bezeichners der Zeitzone darf jedoch nicht länger als 32 Zeichen sein. Die an den displayName Parameter übergebene Zeichenfolge folgt einem ziemlich standardformat. Der erste Teil des Anzeigenamens ist der Basisoffset der Zeitzone aus der koordinierten Weltzeit, der durch das In Klammern eingeschlossene Akronym GMT (für Greenwich Mean Time) angegeben wird. Darauf folgt eine Zeichenfolge, die die Zeitzone selbst oder eine oder mehrere Städte, Regionen oder Länder in der Zeitzone oder beides identifiziert. Beispiel:

(GMT+02:00) Athens, Beirut, Istanbul, Minsk
(GMT-02:00) Mid-Atlantic
(GMT-07:00) Mountain Time (US & Canada)

Der baseUtcOffset Parameter definiert den Offset der benutzerdefinierten Zeitzone von koordinierter Weltzeit (UTC) für alle Anpassungsregeln der Zeitzone. Mit anderen Worten, das TimeZoneInfo Objektmodell geht davon aus, dass der Offset der Zeitzone von UTC während der gesamten Lebensdauer der Zeitzone konstant ist und unabhängig von bestimmten Anpassungsregeln vorhanden ist. Um eine Zeitzone widerzuspiegeln, die ihren Offset gegenüber UTC geändert hat, müssen Sie ein neues Zeitzonenobjekt erstellen.

Die Anpassungsregeln einer Zeitzone werden wie folgt definiert:

  1. Aufrufen der CreateFloatingDateRule -Methode oder CreateFixedDateRule zum Definieren der Anfangs- und Endübergangszeit für jede Anpassungsregel.

  2. Aufrufen der CreateAdjustmentRule Methode für jede Anpassungsregel.

  3. Zuweisen der Anpassungsregeln zu einem Array, das als adjustmentRules Parameter übergeben werden kann.

Weitere Informationen

Gilt für: