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
| Name | Beschreibung |
|---|---|
| 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 lautet DateTime.MinValue.Date, ist dies die erste Anpassungsregel, die für eine Zeitzone wirksam ist.
- dateEnd
- DateTime
Das letzte Datum, an dem die Anpassungsregel in Kraft ist. Wenn der Wert des dateEnd Parameters lautet DateTime.MaxValue.Date, weist die Anpassungsregel kein Enddatum auf.
- daylightDelta
- TimeSpan
Die Zeitänderung, die sich aus der Anpassung ergibt. Dieser Wert wird der Eigenschaft der Zeitzone BaseUtcOffset hinzugefügt, um den richtigen Sommeroffset aus koordinierter Weltzeit (UTC) abzurufen. 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 Parameters oder dateEnd des dateStart Parameters ist nicht gleichUnspecified.
- oder -
Der daylightTransitionStart Parameter ist gleich dem daylightTransitionEnd Parameter.
- oder -
Der dateStart Oder-Parameter dateEnd enthält eine Tageszeit.
dateEnd ist früher als 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 nicht einer ganzen Anzahl von Sekunden.
Beispiele
Im folgenden Beispiel wird eine alternative 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
Mit dieser Methode können Sie eine oder mehrere Anpassungsregeln für eine benutzerdefinierte Zeitzone 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.
Bei den dateStart Parametern dateEnd muss es sich um Datumswerte handeln, ohne dass eine Zeitkomponente vorhanden ist oder ein ArgumentException Fehler ausgelöst wird. 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 gezeigt:
DateTime.MinValue.Date
DateTime.MaxValue.Date
DateTime.Now.Date
dateVariable.Date
Die Kind Eigenschaft und die dateStartdateEnd Parameter müssen 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 auch zwischen -14 und 14 liegen oder ein InvalidTimeZoneException Fehler ausgelöst wird.
Hinweis
Der daylightDelta Parameter definiert den Unterschied zwischen der Standardzeit einer Zeitzone und der Sommerzeit. Es ist nicht vorgesehen, den Standardzeitversatz der Zeitzone von koordinierter Weltzeit (COORDINATED Universal Time, 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 lautet, ist dies die erste Anpassungsregel, die für eine Zeitzone wirksam ist DateTime.MinValue.Date.
- dateEnd
- DateTime
Das letzte Datum, an dem die Anpassungsregel in Kraft ist. Wenn der Wert lautet DateTime.MaxValue.Date, weist die Anpassungsregel kein Enddatum auf.
- daylightDelta
- TimeSpan
Die Zeitänderung, die sich aus der Anpassung ergibt. Dieser Wert wird den Eigenschaften und BaseUtcOffsetDelta Eigenschaften der Zeitzone BaseUtcOffset hinzugefügt, um den richtigen Sommeroffset 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
Der Zeitunterschied mit dem UTC-Basisoffset für die Zeitzone während des Anpassungsregelzeitraums.
Gibt zurück
Die neue Anpassungsregel.