TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule Methode

Definition

Überlädt

CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime)

Erstellt eine neue Anpassungsregel für eine bestimmte Zeitzone.

CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime, TimeSpan)

Erstellt eine neue Anpassungsregel für eine bestimmte Zeitzone.

CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime)

Erstellt eine neue Anpassungsregel für eine bestimmte Zeitzone.

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. Wenn der Wert des dateStart-Parameters DateTime.MinValue.Date entspricht, ist dies die erste Anpassungsregel, die für eine Zeitzone gültig ist.

dateEnd
DateTime

Das letzte Datum, an dem die Anpassungsregel aktiv ist. Wenn der Wert des dateEnd-Parameters DateTime.MaxValue.Date ist, besitzt die Anpassungsregel kein Enddatum.

daylightDelta
TimeSpan

Die Zeitänderung, die sich durch die Anpassung ergibt. Dieser Wert wird zur BaseUtcOffset-Eigenschaft der Zeitzone addiert, um die richtige Sommerzeitabweichung von der koordinierten Weltzeit (UTC) zu erhalten. Dieser Wert kann zwischen -14 und 14 liegen.

daylightTransitionStart
TimeZoneInfo.TransitionTime

Ein Objekt, das den Beginn der Sommerzeit definiert.

daylightTransitionEnd
TimeZoneInfo.TransitionTime

Ein Objekt, das das Ende der Sommerzeit definiert.

Gibt zurück

Ein Objekt, das die neue Anpassungsregel darstellt.

Ausnahmen

Die Kind-Eigenschaft des dateStart- oder dateEnd-Parameters ist nicht gleich Unspecified.

- oder -

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

- oder -

Der dateStart- oder dateEnd-Parameter enthält einen Tageszeitwert.

dateEnd liegt vor dateStart.

- oder -

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

- oder -

Die Milliseconds-Eigenschaft des daylightDelta-Parameters ist nicht gleich 0.

- oder -

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

Beispiele

Im folgenden Beispiel wird eine alternative zentrale Standardzeitzone erstellt und drei Anpassungsregeln für die Zeiträume 1976-1986, 1987-2006 und 2007 und darüber hinaus definiert. Diese Regeln werden einem generischen List<T> Objekt hinzugefügt, dessen Elemente dann in ein TimeZoneInfo.AdjustmentRule Array kopiert werden. Dieses Array wird dann im Aufruf 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());
// Create alternate Central Standard Time to include historical time zone information
let delta = TimeSpan(1, 0, 0)
let adjustmentList = ResizeArray()

// Define end rule (for 1976-2006)
let transitionRuleEnd = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 2, 0, 0), 10, 5, DayOfWeek.Sunday)
// Define rule (1976-1986)
let transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 2, 0, 0), 04, 05, DayOfWeek.Sunday)
TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(DateTime(1976, 1, 1), DateTime(1986, 12, 31), delta, transitionRuleStart, transitionRuleEnd)
|> adjustmentList.Add
// Define rule (1987-2006)  
let transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 2, 0, 0), 04, 01, DayOfWeek.Sunday)
TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(DateTime(1987, 1, 1), DateTime(2006, 12, 31), delta, transitionRuleStart, transitionRuleEnd)
|> adjustmentList.Add
// Define rule (2007- )  
let transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 2, 0, 0), 03, 02, DayOfWeek.Sunday)
let transitionRuleEnd = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 2, 0, 0), 11, 01, DayOfWeek.Sunday)
TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(DateTime(2007, 01, 01), DateTime.MaxValue.Date, delta, transitionRuleStart, transitionRuleEnd)
|> adjustmentList.Add
            
// Create custom U.S. Central Standard Time zone         
TimeZoneInfo.CreateCustomTimeZone("Central Standard Time", 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

Sie können diese Methode verwenden, um eine oder mehrere Anpassungsregeln für eine benutzerdefinierte Zeitzone zu erstellen. Ein Array der Objekte, die TimeZoneInfo.AdjustmentRule von Aufrufen dieser Methode zurückgegeben werden, kann dann als adjustmentRules Parameter an zwei Überladungen der CreateCustomTimeZone -Methode übergeben werden. Das Beispiel veranschaulicht dieses Verfahren.

Hinweis

Die CreateAdjustmentRule -Methode kann nur verwendet werden, um eine Anpassungsregel für eine neue Zeitzone zu definieren. Sie kann nicht verwendet werden, um eine Anpassungsregel für eine vorhandene Zeitzone zu ändern.

Die dateStart Parameter und dateEnd müssen Datumswerte sein, ohne dass eine Zeitkomponente oder eine ArgumentException ausgelöst wird. Die Zeitkomponente kann entfernt werden, indem sie einen DateTime Wert aus der Eigenschaft des Datums und der Date Uhrzeit abruft, wie in den folgenden Anweisungen gezeigt:

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

Die Kind -Eigenschaft der dateStart Parameter und dateEnd muss ebenfalls sein DateTimeKind.Unspecified.

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

Hinweis

Der daylightDelta Parameter definiert den Unterschied zwischen der Standardzeit einer Zeitzone und ihrer Sommerzeit. Es ist nicht vorgesehen, den Standardzeitoffset der Zeitzone von koordinierter Weltzeit (UTC) zu definieren. Die TimeZoneInfo -Klasse geht davon aus, dass dieser Offset von UTC während der gesamten Lebensdauer der Zeitzone konstant ist. Um eine Änderung des Offsets einer Zeitzone gegenüber UTC widerzuspiegeln, die nicht durch die Anwendung einer Anpassungsregel verursacht wird, müssen Sie die CreateCustomTimeZone -Methode verwenden, um eine neue benutzerdefinierte Zeitzone zu erstellen.

Gilt für:

CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime, TimeSpan)

Erstellt eine neue Anpassungsregel für eine bestimmte Zeitzone.

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

Parameter

dateStart
DateTime

Das Gültigkeitsdatum der Anpassungsregel. Wenn der Wert ist DateTime.MinValue.Date, ist dies die erste Anpassungsregel, die für eine Zeitzone gilt.

dateEnd
DateTime

Das letzte Datum, an dem die Anpassungsregel aktiv ist. Wenn der Wert ist DateTime.MaxValue.Date, weist die Anpassungsregel kein Enddatum auf.

daylightDelta
TimeSpan

Die Zeitänderung, die sich durch die Anpassung ergibt. Dieser Wert wird den Eigenschaften und BaseUtcOffsetDelta der Zeitzone BaseUtcOffset hinzugefügt, um den richtigen Tageslichtoffset aus koordinierter Weltzeit (UTC) zu erhalten. Dieser Wert kann zwischen -14 und 14 liegen.

daylightTransitionStart
TimeZoneInfo.TransitionTime

Der Beginn der Sommerzeit.

daylightTransitionEnd
TimeZoneInfo.TransitionTime

Das Ende der Sommerzeit.

baseUtcOffsetDelta
TimeSpan

Die Zeitdifferenz mit dem UTC-Basisoffset für die Zeitzone während des Anpassungsregelzeitraums.

Gibt zurück

Die neue Anpassungsregel.

Gilt für: