Freigeben über


TimeZoneInfo.CreateCustomTimeZone Methode

Definition

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

Überlädt

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

Erstellt eine benutzerdefinierte Zeitzone mit einem angegebenen Bezeichner, einen Offset von Coordinated Universal Time (UTC), einen Anzeigenamen, einen Standardzeitnamen, einen Sommerzeitnamen, Sommerzeitregeln und einen Wert, der angibt, ob das zurückgegebene Objekt Sommerzeitinformationen widerspiegelt.

CreateCustomTimeZone(String, TimeSpan, String, String)

Erstellt eine benutzerdefinierte Zeitzone mit einem angegebenen Bezeichner, einen Offset von coordinated Universal Time (UTC), einen Anzeigenamen und einen Standardzeitanzeigenamen.

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

Erstellt eine benutzerdefinierte Zeitzone mit einem angegebenen Bezeichner, einen Offset von coordinated Universal Time (UTC), einen Anzeigenamen, einen Standardzeitnamen, einen Sommerzeitnamen und Sommerzeitregeln.

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

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

Erstellt eine benutzerdefinierte Zeitzone mit einem angegebenen Bezeichner, einen Offset von Coordinated Universal Time (UTC), einen Anzeigenamen, einen Standardzeitnamen, einen Sommerzeitnamen, Sommerzeitregeln und einen Wert, der angibt, ob das zurückgegebene Objekt Sommerzeitinformationen widerspiegelt.

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 Bezeichner der Zeitzone.

baseUtcOffset
TimeSpan

Ein TimeSpan Objekt, das den Zeitunterschied zwischen dieser Zeitzone und koordinierter Weltzeit (COORDINATED Universal Time, UTC) darstellt.

displayName
String

Der Anzeigename der neuen Zeitzone.

standardDisplayName
String

Der Standardzeitname 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 erweitern.

disableDaylightSavingTime
Boolean

true um alle sommerzeitbezogenen Informationen, die mit adjustmentRules dem neuen Objekt vorhanden sind, falsezu verwerfen; andernfalls .

Gibt zurück

Die neue Zeitzone. Wenn der disableDaylightSavingTime Parameter lautet true, enthält das zurückgegebene Objekt keine Sommerzeitdaten.

Ausnahmen

Der id Parameter ist null.

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

- oder -

Der baseUtcOffset Parameter stellt keine ganze Anzahl von Minuten dar.

Der baseUtcOffset Parameter ist größer als 14 Stunden oder kleiner als -14 Stunden.

Die im adjustmentRules Parameter angegebenen Anpassungsregeln überlappen.

- oder -

Die im adjustmentRules Parameter angegebenen Anpassungsregeln sind nicht chronologisch angeordnet.

- oder -

Mindestens ein Element in adjustmentRules ist null.

- oder -

Auf ein Datum können mehrere Anpassungsregeln angewendet werden.

- oder -

Die Summe des baseUtcOffset Parameters und der DaylightDelta Wert eines oder mehrerer Objekte im adjustmentRules Array beträgt mehr als 14 Stunden oder weniger als -14 Stunden.

Beispiele

Im folgenden Beispiel wird eine benutzerdefinierte Zeitzone für die Palmer-Station und die Anvers-Insel in der Antarktis erstellt. Er legt den disableDaylightSavingTime Parameter im Aufruf der TimeZoneInfo.CreateCustomTimeZone Methode auf true. Anschließend wird der Name der Sommerzeit der neuen Zeitzone 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 der 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 if disableDaylightSavingTime is false; String.Empty if disableDaylightSavingTime is true.
adjustmentRules Ein Array von Objekten, TimeZoneInfo.AdjustmentRule die von der GetAdjustmentRules Methode zurückgegeben werden, wenn disableDaylightSavingTime dies der Wert istfalse; ein leeres Array, das von der GetAdjustmentRules Methode zurückgegeben wird, falls disableDaylightSavingTime vorhanden.true
disableDaylightSavingTime Nicht SupportsDaylightSavingTime.

In der Regel sind der Standardzeitname der Zeitzone und dessen Bezeichner identisch. Die Länge des Bezeichners der Zeitzone darf jedoch 32 Zeichen nicht überschreiten. Die an den displayName Parameter übergebene Zeichenfolge folgt einem ziemlich standardformat. Der erste Teil des Anzeigenamens ist der Basisoffset der Zeitzone von koordinierter Weltzeit, der durch das Akronym GMT (für Greenwich Mean Time) angegeben wird, eingeschlossen in Klammern. Dies folgt eine Zeichenfolge, die die Zeitzone selbst oder eine oder mehrere der 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 Methode oder CreateFixedDateRule der CreateFloatingDateRule Methode zum Definieren der Start- und Endübergangsregeln 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.

Wenn disableDaylightSavingTime der Parameter lautet, ist falseder Vorgang dieser Methode identisch mit der TimeZoneInfo.CreateCustomTimeZone Überladung. Wenn disableDaylightSavingTime dies der Wert 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
Quelle:
TimeZoneInfo.cs
Quelle:
TimeZoneInfo.cs

Erstellt eine benutzerdefinierte Zeitzone mit einem angegebenen Bezeichner, einen Offset von coordinated Universal Time (UTC), einen Anzeigenamen und einen Standardzeitanzeigenamen.

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 Bezeichner der Zeitzone.

baseUtcOffset
TimeSpan

Ein Objekt, das den Zeitunterschied zwischen dieser Zeitzone und koordinierter Weltzeit (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 stellt keine ganze Anzahl von Minuten dar.

Der baseUtcOffset Parameter 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 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 Methode eignet sich für die CreateCustomTimeZone(String, TimeSpan, String, String) Erstellung einer Zeitzone ohne Anpassungen (d. a. eine Zeitzone, die keine Sommerzeit unterstützt). Um eine Zeitzone zu definieren, die Anpassungen für Sommerzeit enthält, verwenden Sie entweder die TimeZoneInfo.CreateCustomTimeZone Methode oder die TimeZoneInfo.CreateCustomTimeZone Methode.

Die folgende Tabelle zeigt die Beziehung zwischen den Parametern, die der 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 dessen Bezeichner identisch. Die Länge des Bezeichners der Zeitzone darf jedoch 32 Zeichen nicht überschreiten. Die an den displayName Parameter übergebene Zeichenfolge folgt einem ziemlich standardformat. Der erste Teil des Anzeigenamens ist der Basisoffset der Zeitzone von koordinierter Weltzeit, der durch das Akronym GMT (für Greenwich Mean Time) angegeben wird, eingeschlossen in Klammern. Dies folgt eine Zeichenfolge, die die Zeitzone selbst oder eine oder mehrere der 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
Quelle:
TimeZoneInfo.cs
Quelle:
TimeZoneInfo.cs

Erstellt eine benutzerdefinierte Zeitzone mit einem angegebenen Bezeichner, einen Offset von coordinated Universal Time (UTC), einen Anzeigenamen, einen Standardzeitnamen, einen Sommerzeitnamen und Sommerzeitregeln.

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 Bezeichner der Zeitzone.

baseUtcOffset
TimeSpan

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

displayName
String

Der Anzeigename der neuen Zeitzone.

standardDisplayName
String

Der Standardzeitname 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 erweitert.

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 stellt keine ganze Anzahl von Minuten dar.

Der baseUtcOffset Parameter ist größer als 14 Stunden oder kleiner als -14 Stunden.

Die im adjustmentRules Parameter angegebenen Anpassungsregeln überlappen.

- oder -

Die im adjustmentRules Parameter angegebenen Anpassungsregeln sind nicht chronologisch angeordnet.

- oder -

Mindestens ein Element in adjustmentRules ist null.

- oder -

Auf ein Datum können mehrere Anpassungsregeln angewendet werden.

- oder -

Die Summe des baseUtcOffset Parameters und der DaylightDelta Wert eines oder mehrerer Objekte im adjustmentRules Array beträgt mehr als 14 Stunden oder weniger als -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 Methode eignet sich für die TimeZoneInfo.CreateCustomTimeZone Erstellung einer Zeitzone, die Sommerzeit unterstützt. Wenn Sie eine Zeitzone definieren möchten, die sommerzeitsparende Zeit nicht unterstützt, verwenden Sie entweder die TimeZoneInfo.CreateCustomTimeZone Methode oder die TimeZoneInfo.CreateCustomTimeZone Methode.

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

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

In der Regel sind der Standardzeitname der Zeitzone und dessen Bezeichner identisch. Die Länge des Bezeichners der Zeitzone darf jedoch 32 Zeichen nicht überschreiten. Die an den displayName Parameter übergebene Zeichenfolge folgt einem ziemlich standardformat. Der erste Teil des Anzeigenamens ist der Basisoffset der Zeitzone von koordinierter Weltzeit, der durch das Akronym GMT (für Greenwich Mean Time) angegeben wird, eingeschlossen in Klammern. Dies folgt eine Zeichenfolge, die die Zeitzone selbst oder eine oder mehrere der 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 aus koordinierter Weltzeit (UTC) für alle Anpassungsregeln der Zeitzone. Mit anderen Worten, das TimeZoneInfo Objektmodell geht davon aus, dass der Abstand 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 den Offset von UTC geändert hat, müssen Sie ein neues Zeitzonenobjekt erstellen.

Die Anpassungsregeln einer Zeitzone werden wie folgt definiert:

  1. Aufrufen der Methode oder CreateFixedDateRule der CreateFloatingDateRule Methode zum Definieren der Start- 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: