TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ü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 TimeZoneInfo.AdjustmentRule von Aufrufen dieser Methode zurückgegebenen Objekte kann dann als adjustmentRules Parameter an zwei Überladungen der CreateCustomTimeZone Methode übergeben werden. Das Beispiel veranschaulicht diese Prozedur.
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 Werte und dateEnd Parameter müssen Datumswerte ohne Zeitkomponente oder ein ArgumentException Auslösen sein. Die Zeitkomponente kann entfernt werden, indem Sie einen DateTime Wert aus der Eigenschaft des Datums Date und der Uhrzeit abrufen, wie in den folgenden Anweisungen dargestellt:
DateTime.MinValue.Date
DateTime.MaxValue.Date
DateTime.Now.Date
dateVariable.Date
Die Kind Eigenschaft der dateStart Parameter dateEnd muss ebenfalls sein DateTimeKind.Unspecified.
Der Wert des daylightDelta Parameters kann zwischen -14 und 14 liegen. Die Summe des daylightDelta Parameters und der Parameter, der baseUtcOffset im Aufruf der TimeZoneInfo.CreateCustomTimeZone Methode verwendet wird, muss auch zwischen -14 und 14 liegen oder ein InvalidTimeZoneException Ausgelöst wird.
Hinweis
Der daylightDelta Parameter definiert den Unterschied zwischen der Standardzeit einer Zeitzone und seiner Sommerzeit. Es ist nicht beabsichtigt, den Standardzeitversatz 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 von 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 DateTime.MinValue.Date ist, ist dies die erste Anpassungsregel, die für eine Zeitzone wirksam ist.
- dateEnd
- DateTime
Das letzte Datum, an dem die Anpassungsregel aktiv ist. Wenn der Wert DateTime.MaxValue.Date ist, hat die Anpassungsregel kein Enddatum.
- daylightDelta
- TimeSpan
Die Zeitänderung, die sich durch die Anpassung ergibt. Dieser Wert wird der Zeitzone und BaseUtcOffsetDelta den Eigenschaften hinzugefügt, um den richtigen Tageslichtversatz von koordinierter Weltzeit BaseUtcOffset (UTC) abzurufen. Dieser Wert kann zwischen -14 und 14 liegen.
- daylightTransitionStart
- TimeZoneInfo.TransitionTime
Der Beginn der Sommerzeit.
- daylightTransitionEnd
- TimeZoneInfo.TransitionTime
Das Ende der Sommerzeit.
- baseUtcOffsetDelta
- TimeSpan
Der Zeitunterschied mit dem UTC-Basisversatz für die Zeitzone während des Anpassungsregelzeitraums.
Gibt zurück
Die neue Anpassungsregel.