Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

TimeZoneInfo.CreateCustomTimeZone-Methode: (String, TimeSpan, String, String, String, TimeZoneInfo.AdjustmentRule[], Boolean)

 

Veröffentlicht: Oktober 2016

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.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

public static TimeZoneInfo CreateCustomTimeZone(
	string id,
	TimeSpan baseUtcOffset,
	string displayName,
	string standardDisplayName,
	string daylightDisplayName,
	TimeZoneInfo.AdjustmentRule[] adjustmentRules,
	bool disableDaylightSavingTime
)

Parameter

id
Type: System.String

Der Zeitzonenbezeichner.

baseUtcOffset
Type: System.TimeSpan

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

displayName
Type: System.String

Der Anzeigename der neuen Zeitzone.

standardDisplayName
Type: System.String

Der Name der Standardzeit der neuen Zeitzone.

daylightDisplayName
Type: System.String

Der Name der Sommerzeit der neuen Zeitzone.

adjustmentRules
Type: System.TimeZoneInfo.AdjustmentRule[]

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

disableDaylightSavingTime
Type: System.Boolean

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

Rückgabewert

Type: System.TimeZoneInfo

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

Exception Condition
ArgumentNullException

Der id-Parameter ist null.

ArgumentException

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

- oder -

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

ArgumentOutOfRangeException

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

InvalidTimeZoneException

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 TimeZoneInfo.AdjustmentRule.DaylightDelta-Wert von einem oder mehreren Objekten im adjustmentRules-Array liegt über 14 Stunden oder unter -14 Stunden.

Sie können diese Überladung der die TimeZoneInfo.CreateCustomTimeZone Methode, um eine benutzerdefinierte Zeitzone erstellen, deren Unterstützung für die Sommerzeit Bedingungen zur Laufzeit ermittelt werden kann.

Die folgende Tabelle zeigt die Beziehung zwischen den Parametern, die bereitgestellt werden, die TimeZoneInfo.CreateCustomTimeZone -Methode und die Mitglieder der TimeZoneInfo -Objekt, das vom Aufruf Methode zurückgegeben werden.

CreateCustomTimeZone-parameter

TimeZoneInfo-Eigenschaft

id

Id

baseUtcOffset

BaseUtcOffset

displayName

DisplayName

standardDisplayName

StandardName

daylightDisplayName

DaylightNameif disableDaylightSavingTime is false; String.Empty if disableDaylightSavingTime is true.

adjustmentRules

Ein Array von TimeZoneInfo.AdjustmentRule zurückgegebenen Objekte die GetAdjustmentRules Methode Wenn disableDaylightSavingTime ist false; ein leeres Array zurückgegeben, durch die GetAdjustmentRules Methode Wenn disableDaylightSavingTime ist true.

disableDaylightSavingTime

Not SupportsDaylightSavingTime.

In der Regel sind Name der Standardzeit der Zeitzone und ihres Bezeichners identisch. Die Länge des Bezeichners der Zeitzone darf jedoch 32 Zeichen nicht überschreiten. Die Zeichenfolge übergeben, um die displayName Parameter folgt einem Standardformat. Der erste Teil des Anzeigenamens ist die Zeitzone Basis Offset von Coordinated Universal Time, der durch das Akronym GMT (Greenwich Mean Time), eingeschlossen in Klammern angegeben wird. Danach folgt eine Zeichenfolge, die die Zeitzone selbst, oder eine oder mehrere Städte, Regionen oder Länder in der Zeitzone oder beides identifiziert. Zum Beispiel:

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

Anpassungsregeln einer Zeitzone werden wie folgt definiert:

  1. Aufrufen von entweder der CreateFloatingDateRule oder CreateFixedDateRule Methode, um das Start- und Enddatum der von Übergangsregeln für jede Anpassungsregel definieren.

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

  3. Zum Zuweisen der Anpassungsregeln in ein Array, übergeben Sie als die adjustmentRules Parameter.

Wenn disableDaylightSavingTime Parameter ist false, der Vorgang für diese Methode ist identisch mit der TimeZoneInfo.CreateCustomTimeZone überladen. Wenn disableDaylightSavingTime ist true, das zurückgegebene Objekt enthält keine Anpassungsregeln und einen DaylightName Eigenschaft, deren Wert eine leere Zeichenfolge.

Im folgende Beispiel wird eine benutzerdefinierte Zeitzone für die Station Palmer und Anvers Island in Antarktis erstellt. Wird die disableDaylightSavingTime Parameter im Aufruf der TimeZoneInfo.CreateCustomTimeZone aufzurufende Methode true. Es zeigt dann der neuen Zeitzone Sommerzeit Namen, sofern eins vorhanden ist und die Anzahl der Anpassungsregeln, um sicherzustellen, dass die neue Zeitzone keine Sommerzeit-Informationen 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);

.NET Framework
Verfügbar seit 3.5
Zurück zum Anfang
Anzeigen: