TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime) Methode

Definition

Erstellt eine neue Anpassungsregel für eine bestimmte Zeitzone.Creates a new adjustment rule for a particular time zone.

public:
 static TimeZoneInfo::AdjustmentRule ^ CreateAdjustmentRule(DateTime dateStart, DateTime dateEnd, TimeSpan daylightDelta, TimeZoneInfo::TransitionTime daylightTransitionStart, TimeZoneInfo::TransitionTime daylightTransitionEnd);
public static TimeZoneInfo.AdjustmentRule CreateAdjustmentRule (DateTime dateStart, DateTime dateEnd, TimeSpan daylightDelta, TimeZoneInfo.TransitionTime daylightTransitionStart, TimeZoneInfo.TransitionTime daylightTransitionEnd);
static member CreateAdjustmentRule : DateTime * DateTime * TimeSpan * TimeZoneInfo.TransitionTime * TimeZoneInfo.TransitionTime -> TimeZoneInfo.AdjustmentRule
Public Shared Function CreateAdjustmentRule (dateStart As DateTime, dateEnd As DateTime, daylightDelta As TimeSpan, daylightTransitionStart As TimeZoneInfo.TransitionTime, daylightTransitionEnd As TimeZoneInfo.TransitionTime) As TimeZoneInfo.AdjustmentRule

Parameter

dateStart
DateTime

Das Gültigkeitsdatum der Anpassungsregel.The effective date of the adjustment rule. Wenn der Wert des dateStart-Parameters DateTime.MinValue.Date entspricht, ist dies die erste Anpassungsregel, die für eine Zeitzone gültig ist.If the value of the dateStart parameter is DateTime.MinValue.Date, this is the first adjustment rule in effect for a time zone.

dateEnd
DateTime

Das letzte Datum, an dem die Anpassungsregel aktiv ist.The last date that the adjustment rule is in force. Wenn der Wert des dateEnd-Parameters DateTime.MaxValue.Date ist, besitzt die Anpassungsregel kein Enddatum.If the value of the dateEnd parameter is DateTime.MaxValue.Date, the adjustment rule has no end date.

daylightDelta
TimeSpan

Die Zeitänderung, die sich durch die Anpassung ergibt.The time change that results from the adjustment. Dieser Wert wird zur BaseUtcOffset-Eigenschaft der Zeitzone addiert, um die richtige Sommerzeitabweichung von der koordinierten Weltzeit (UTC) zu erhalten.This value is added to the time zone's BaseUtcOffset property to obtain the correct daylight offset from Coordinated Universal Time (UTC). Dieser Wert kann zwischen -14 und 14 liegen.This value can range from -14 to 14.

daylightTransitionStart
TimeZoneInfo.TransitionTime

Ein Objekt, das den Beginn der Sommerzeit definiert.An object that defines the start of daylight saving time.

daylightTransitionEnd
TimeZoneInfo.TransitionTime

Ein Objekt, das das Ende der Sommerzeit definiert.An object that defines the end of daylight saving time.

Gibt zurück

Ein Objekt, das die neue Anpassungsregel darstellt.An object that represents the new adjustment rule.

Ausnahmen

Die Kind-Eigenschaft des dateStart- oder dateEnd-Parameters ist nicht gleich Unspecified.The Kind property of the dateStart or dateEnd parameter does not equal Unspecified.

- oder --or- Der daylightTransitionStart-Parameter ist identisch mit dem daylightTransitionEnd-Parameter.The daylightTransitionStart parameter is equal to the daylightTransitionEnd parameter.

- oder --or- Der dateStart- oder dateEnd-Parameter enthält einen Tageszeitwert.The dateStart or dateEnd parameter includes a time of day value.

dateEnd liegt vor dateStart.dateEnd is earlier than dateStart.

- oder --or- daylightDelta ist kleiner als -14 oder größer als 14.daylightDelta is less than -14 or greater than 14.

- oder --or- Die Milliseconds-Eigenschaft des daylightDelta-Parameters ist nicht gleich 0.The Milliseconds property of the daylightDelta parameter is not equal to 0.

- oder --or- Die Ticks-Eigenschaft des daylightDelta-Parameters entspricht keiner ganzen Zahl von Sekunden.The Ticks property of the daylightDelta parameter does not equal a whole number of seconds.

Beispiele

Im folgenden Beispiel wird eine Alternative zentrale Standard Zeitzone erstellt, und es werden drei Anpassungsregeln für die Zeiträume 1976-1986, 1987-2006 und 2007 und darüber definiert.The following example creates an alternate Central Standard Time zone and defines three adjustment rules for the periods 1976-1986, 1987-2006, and 2007 and beyond. Diese Regeln werden einem generischen List<T> Objekt hinzugefügt, dessen Elemente dann in ein TimeZoneInfo.AdjustmentRule -Array kopiert werden.These rules are added to a generic List<T> object whose elements are then copied to a TimeZoneInfo.AdjustmentRule array. Dieses Array wird dann im Aufrufder TimeZoneInfo.CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[]) -Methode verwendet.This array is then used in the call to the TimeZoneInfo.CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[]) method.

// 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());       
' Create alternate Central Standard Time to include historical time zone information
'
' Declare necessary TimeZoneInfo.AdjustmentRule objects for time zone
Dim delta As New TimeSpan(1, 0, 0)
Dim adjustment As TimeZoneInfo.AdjustmentRule
Dim adjustmentList As New List(Of TimeZoneInfo.AdjustmentRule)
' Declare transition time variables to hold transition time information
Dim transitionRuleStart, transitionRuleEnd As TimeZoneInfo.TransitionTime

' Define end rule (for 1976-2006)
transitionRuleEnd = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#02:00:00AM#, 10, 5, DayOfWeek.Sunday)
' Define rule (1976-1986)
transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#2:00:00AM#, 04, 05, DayOfWeek.Sunday)
adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(#01/01/1976#, #12/31/1986#, delta, transitionRuleStart, transitionRuleEnd)
adjustmentList.Add(adjustment)
' Define rule (1987-2006)  
transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#2:00:00AM#, 04, 01, DayOfWeek.Sunday)
adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(#01/01/1987#, #12/31/2006#, delta, transitionRuleStart, transitionRuleEnd)
adjustmentList.Add(adjustment)
' Define rule (2007- )  
transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#2:00:00AM#, 03, 02, DayOfWeek.Sunday)
transitionRuleEnd = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#2:00:00AM#, 11, 01, DayOfWeek.Sunday)
adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(#01/01/2007#, Date.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())     

Hinweise

Mit dieser Methode können Sie eine oder mehrere Anpassungsregeln für eine benutzerdefinierte Zeitzone erstellen.You can use this method to create one or more adjustment rules for a custom time zone. Ein Array von TimeZoneInfo.AdjustmentRule -Objekten, die von Aufrufen dieser Methode zurückgegeben werden, kann dann adjustmentRules als Parameter an CreateCustomTimeZone zwei über Ladungen der-Methode übergeben werden.An array of the TimeZoneInfo.AdjustmentRule objects returned by calls to this method can then be passed as the adjustmentRules parameter to two overloads of the CreateCustomTimeZone method. Dieses Verfahren wird in diesem Beispiel veranschaulicht.The example illustrates this procedure.

Hinweis

Die CreateAdjustmentRule -Methode kann nur verwendet werden, um eine Anpassungs Regel für eine neue Zeitzone zu definieren. Sie kann nicht verwendet werden, um eine Anpassungs Regel für eine vorhandene Zeitzone zu ändern.The CreateAdjustmentRule method can be used only to define an adjustment rule for a new time zone; it cannot be used to modify an adjustment rule for an existing time zone.

Der dateStart - dateEnd Parameter und der-Parameter müssen Datumswerte ohne Zeitkomponente ArgumentException sein, oder es wird eine ausgelöst.The dateStart and dateEnd parameters must be date values without a time component or an ArgumentException is thrown. Die Zeitkomponente kann entfernt werden, indem Sie einen DateTime Wert aus der- Date Eigenschaft des Datums und der Uhrzeit abrufen, wie in den folgenden-Anweisungen gezeigt:The time component can be removed by retrieving a DateTime value from the date and time's Date property as shown in the following statements:

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

Die Kind dateStart -Eigenschaft des- dateEnd und des-para DateTimeKind.Unspecifiedmeters muss ebenfalls sein.The Kind property of the dateStart and dateEnd parameters must also be DateTimeKind.Unspecified.

Der Wert des daylightDelta -Parameters kann zwischen-14 und 14 liegen.The value of the daylightDelta parameter can range from -14 to 14. Die Summe daylightDelta des-Parameters und baseUtcOffset des-Parameters, der im TimeZoneInfo.CreateCustomTimeZone Aufrufen der-Methode verwendet wird, muss ebenfalls zwischen- InvalidTimeZoneException 14 und 14 liegen, oder es wird eine ausgelöst.The sum of the daylightDelta parameter and the baseUtcOffset parameter used in the call to the TimeZoneInfo.CreateCustomTimeZone method must also range from -14 to 14 or an InvalidTimeZoneException is thrown.

Hinweis

Der daylightDelta -Parameter definiert den Unterschied zwischen der Standardzeit und der Sommerzeit einer Zeitzone.The daylightDelta parameter defines the difference between a time zone's standard time and its daylight saving time. Es ist nicht vorgesehen, den Standardzeit Offset der Zeitzone von der koordinierten Weltzeit (UTC) zu definieren.It is not intended to define the time zone's standard time offset from Coordinated Universal Time (UTC). Die TimeZoneInfo -Klasse geht davon aus, dass dieser Offset von UTC während der gesamten Lebensdauer der Zeitzone konstant ist.The TimeZoneInfo class assumes that this offset from UTC is constant throughout the life of the time zone. Um eine Änderung im Offset einer Zeit Zonen Abweichung von der UTC widerzuspiegeln, die nicht durch die Anwendung einer Anpassungs Regel verursacht wird, müssen CreateCustomTimeZone Sie die-Methode verwenden, um eine neue benutzerdefinierte Zeitzone zu erstellen.To reflect a change in a time zone's offset from UTC that is not caused by the application of an adjustment rule, you must use the CreateCustomTimeZone method to create a new custom time zone.

Gilt für: