(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule-Methode

Erstellt eine neue Anpassungsregel für eine bestimmte Zeitzone.

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

public static TimeZoneInfo.AdjustmentRule CreateAdjustmentRule(
	DateTime dateStart,
	DateTime dateEnd,
	TimeSpan daylightDelta,
	TimeZoneInfo.TransitionTime daylightTransitionStart,
	TimeZoneInfo.TransitionTime daylightTransitionEnd
)

Parameter

dateStart
Typ: System.DateTime
Das Gültigkeitsdatum der Anpassungsregel. Wenn der Wert des dateStart-Parameters DateTime.MinValue.Date lautet, ist dies die erste für eine Zeitzone geltende Anpassungsregel.
dateEnd
Typ: System.DateTime
Das Datum, an dem die Gültigkeit der Anpassungsregel endet. Wenn der Wert des dateEnd-Parameters DateTime.MaxValue.Date ist, hat die Anpassungsregel kein Enddatum.
daylightDelta
Typ: System.TimeSpan
Der Zeitwechsel, der aufgrund der Anpassung erfolgt. Dieser Wert wird der TimeZoneInfo.BaseUtcOffset-Eigenschaft der Zeitzone hinzugefügt, um den richtigen Offset zur UTC-Zeit (Coordinated Universal Time) abzurufen. Dieser Wert kann zwischen -14 und 14 liegen.
daylightTransitionStart
Typ: System.TimeZoneInfo.TransitionTime
Ein Objekt, das den Anfang der Sommerzeit definiert.
daylightTransitionEnd
Typ: System.TimeZoneInfo.TransitionTime
Ein Objekt, das das Ende der Sommerzeit definiert.

Rückgabewert

Typ: System.TimeZoneInfo.AdjustmentRule
Ein Objekt, das die neue Anpassungsregel darstellt.

AusnahmeBedingung
ArgumentException

Die Kind-Eigenschaft des dateStart-Parameters oder des dateEnd-Parameters entspricht nicht DateTimeKind.Unspecified.

- oder -

Der daylightTransitionStart-Parameter ist identisch mit dem daylightTransitionEnd-Parameter.

- oder -

Der dateStart-Parameter oder der dateEnd-Parameter schließt einen Zeitwert ein.

ArgumentOutOfRangeException

dateEnd liegt vor dateStart.

- oder -

daylightDelta ist kleiner als -14 oder größer als 14.

- oder -

Die Milliseconds-Eigenschaft des daylightDelta-Parameters ist nicht 0 (null).

- oder -

Die Ticks-Eigenschaft des daylightDelta-Parameters entspricht keiner ganzen Zahl von Sekunden.

Sie können mit dieser Methode eine oder mehrere Anpassungsregeln für eine benutzerdefinierte Zeitzone erstellen. Ein Array der von Aufrufen dieser Methode zurückgegebenen TimeZoneInfo.AdjustmentRule-Objekte kann dann als adjustmentRules-Parameter an zwei Überladungen der CreateCustomTimeZone-Methode übergeben werden. Im Beispiel wird dieses Verfahren veranschaulicht.

HinweisHinweis

Die CreateAdjustmentRule-Methode kann nur zum Definieren einer Anpassungsregel für eine neue Zeitzone verwendet werden. Mit dieser Methode können keine Anpassungsregeln für eine vorhandene Zeitzone geändert werden.

Der dateStart-Parameter und der dateEnd-Parameter müssen Datumswerte ohne Zeitkomponente sein, andernfalls wird eine ArgumentException ausgelöst. Die Zeitkomponente kann durch Abrufen eines DateTime-Werts von der Date-Eigenschaft des Datums und der Zeit entfernt werden, wie in den folgenden Anweisungen dargestellt:

DateTime.MinValue.Date
DateTime.MaxValue.Date
DateTime.Now.Date 
dateVariable.Date

Die Kind-Eigenschaft des dateStart-Parameters und des dateEnd-Parameters muss ebenfalls DateTimeKind.Unspecified sein.

Der Wert des daylightDelta-Parameters kann zwischen -14 und 14 liegen. Die Summe des daylightDelta-Parameters und des baseUtcOffset-Parameters im Aufruf der TimeZoneInfo.CreateCustomTimeZone-Methode muss ebenfalls zwischen -14 und 14 liegen, anderenfalls wird eine InvalidTimeZoneException ausgelöst.

HinweisHinweis

Der daylightDelta-Parameter definiert die Differenz zwischen der Standardzeit und der Sommerzeit einer Zeitzone. Es ist nicht zum Definieren des Standardzeitoffsets der Zeitzone von der Coordinated Universal Time (UTC) vorgesehen. Für die TimeZoneInfo-Klasse wird vorausgesetzt, dass dieser Offset von UTC während der gesamten Lebensdauer der Zeitzone konstant ist. Um eine Änderung des Offsets von UTC einer Zeitzone wiederzugeben, die nicht durch die Anwendung einer Anpassungsregel verursacht wird, müssen Sie mit der CreateCustomTimeZone-Methode eine neue benutzerdefinierte Zeitzone erstellen.

Im folgenden Beispiel wird eine alternative Central Standard Time-Zone erstellt. Außerdem werden drei Anpassungsregeln für die Zeiträume 1976-1986, 1987-2006 sowie ab 2007 erstellt. Diese Regeln werden einem generischen List<T>-Objekt hinzugefügt, dessen Elemente dann in ein TimeZoneInfo.AdjustmentRule-Array kopiert werden. Dieses Array wird dann beim Aufrufen der TimeZoneInfo.CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo.AdjustmentRule[])-Methode verwendet.


// Create alternate Central Standard Time to include historical time zone information
//
// Declare necessary TimeZoneInfo.AdjustmentRule objects for time zone
TimeSpan delta = new TimeSpan(1, 0, 0);
TimeZoneInfo.AdjustmentRule adjustment;
List<TimeZoneInfo.AdjustmentRule> adjustmentList = new List<TimeZoneInfo.AdjustmentRule>();
// Declare transition time variables to hold transition time information
TimeZoneInfo.TransitionTime transitionRuleStart, transitionRuleEnd;

// Define end rule (for 1976-2006)
transitionRuleEnd = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 2, 0, 0), 10, 5, DayOfWeek.Sunday);
// Define rule (1976-1986)
transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 2, 0, 0), 04, 05, DayOfWeek.Sunday);
adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(new DateTime(1976, 1, 1), new DateTime(1986, 12, 31), delta, transitionRuleStart, transitionRuleEnd);
adjustmentList.Add(adjustment);
// Define rule (1987-2006)  
transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 2, 0, 0), 04, 01, DayOfWeek.Sunday);
adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(new DateTime(1987, 1, 1), new DateTime(2006, 12, 31), delta, transitionRuleStart, transitionRuleEnd);
adjustmentList.Add(adjustment);
// Define rule (2007- )  
transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 2, 0, 0), 03, 02, DayOfWeek.Sunday);
transitionRuleEnd = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 2, 0, 0), 11, 01, DayOfWeek.Sunday);
adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(new DateTime(2007, 01, 01), DateTime.MaxValue.Date, delta, transitionRuleStart, transitionRuleEnd);
adjustmentList.Add(adjustment);

// Create custom U.S. Central Standard Time zone         
TimeZoneInfo.CreateCustomTimeZone("Central Standard Time", new TimeSpan(-6, 0, 0), 
                "(GMT-06:00) Central Time (US Only)", "Central Standard Time", 
                "Central Daylight Time", adjustmentList.ToArray());       


.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2014 Microsoft