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 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.