TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Přetížení
CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime) |
Vytvoří nové pravidlo úpravy pro konkrétní časové pásmo. |
CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime, TimeSpan) |
Vytvoří nové pravidlo úpravy pro konkrétní časové pásmo. |
CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime)
Vytvoří nové pravidlo úpravy pro konkrétní časové pásmo.
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
Parametry
- dateStart
- DateTime
Datum účinnosti pravidla úpravy. Pokud je DateTime.MinValue.Date
hodnota parametru dateStart
, jedná se o první pravidlo úpravy, které platí pro časové pásmo.
- dateEnd
- DateTime
Poslední datum, kdy pravidlo úpravy platí. Pokud je DateTime.MaxValue.Date
hodnota parametru dateEnd
, nemá pravidlo úpravy žádné koncové datum.
- daylightDelta
- TimeSpan
Časová změna, která je výsledkem úpravy. Tato hodnota se přidá do vlastnosti časového pásma BaseUtcOffset , aby se získal správný posun denního světla od koordinovaného univerzálního času (UTC). Tato hodnota může být v rozsahu -14 až 14.
- daylightTransitionStart
- TimeZoneInfo.TransitionTime
Objekt, který definuje začátek letního času.
- daylightTransitionEnd
- TimeZoneInfo.TransitionTime
Objekt, který definuje konec letního času.
Návraty
Objekt, který představuje nové pravidlo úpravy.
Výjimky
Vlastnost Kind nebo parametru dateStart
dateEnd
se nerovná Unspecified.
-nebo-
Parametr daylightTransitionStart
se rovná parametru daylightTransitionEnd
.
-nebo-
Parametr dateStart
nebo dateEnd
zahrnuje denní hodnotu.
dateEnd
je dřívější než dateStart
.
-nebo-
daylightDelta
je menší než -14 nebo větší než 14.
-nebo-
Vlastnost Milliseconds parametru daylightDelta
se nerovná 0.
-nebo-
Vlastnost Ticks parametru daylightDelta
se nerovná celému počtu sekund.
Příklady
Následující příklad vytvoří alternativní centrální standardní časové pásmo a definuje tři pravidla úprav pro období 1976–1986, 1987–2006 a 2007 a novější. Tato pravidla se přidají do obecného List<T> objektu, jehož prvky se pak zkopírují TimeZoneInfo.AdjustmentRule do pole. Toto pole se pak použije ve volání TimeZoneInfo.CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[]) metody .
// 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())
Poznámky
Tuto metodu můžete použít k vytvoření jednoho nebo více pravidel úprav pro vlastní časové pásmo. Pole objektů vrácených TimeZoneInfo.AdjustmentRule voláním této metody lze pak předat jako adjustmentRules
parametr dvěma přetížením CreateCustomTimeZone metody. Příklad znázorňuje tento postup.
Poznámka
Metodu CreateAdjustmentRule lze použít pouze k definování pravidla úpravy pro nové časové pásmo; nelze ji použít k úpravě pravidla úprav pro existující časové pásmo.
Parametry dateStart
a dateEnd
musí být hodnoty data bez časové komponenty nebo ArgumentException je vyvolán. Komponentu času lze odebrat načtením DateTime hodnoty z vlastnosti data a času Date , jak je znázorněno v následujících příkazech:
DateTime.MinValue.Date
DateTime.MaxValue.Date
DateTime.Now.Date
dateVariable.Date
Vlastnost KinddateStart
parametrů a dateEnd
musí být DateTimeKind.Unspecifiedtaké .
Hodnota parametru může být v rozsahu daylightDelta
-14 až 14. Součet parametru daylightDelta
a parametru použitého baseUtcOffset
ve volání metody musí být také v rozsahu TimeZoneInfo.CreateCustomTimeZone -14 až 14 nebo InvalidTimeZoneException je vyvolán.
Poznámka
Parametr daylightDelta
definuje rozdíl mezi standardním časem časového pásma a jeho letním časem. Jeho účelem není definovat standardní časový posun časového pásma od koordinovaného univerzálního času (UTC). Třída TimeZoneInfo předpokládá, že tento posun od času UTC je konstantní po celou dobu životnosti časového pásma. Chcete-li odrážet změnu posunu časového pásma od času UTC, která není způsobena použitím pravidla úpravy, musíte použít metodu CreateCustomTimeZone k vytvoření nového vlastního časového pásma.
Platí pro
CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime, TimeSpan)
Vytvoří nové pravidlo úpravy pro konkrétní časové pásmo.
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
Parametry
- dateStart
- DateTime
Datum účinnosti pravidla úpravy. Pokud je DateTime.MinValue.Date
hodnota , jedná se o první pravidlo úpravy, které platí pro časové pásmo.
- dateEnd
- DateTime
Poslední datum, kdy pravidlo úpravy platí. Pokud je DateTime.MaxValue.Date
hodnota , nemá pravidlo úpravy žádné koncové datum.
- daylightDelta
- TimeSpan
Časová změna, která je výsledkem úpravy. Tato hodnota se přidá do vlastností a časového pásma BaseUtcOffset , BaseUtcOffsetDelta aby se získal správný posun denního světla od koordinovaného univerzálního času (UTC). Tato hodnota může být v rozsahu -14 až 14.
- daylightTransitionStart
- TimeZoneInfo.TransitionTime
Začátek letního času.
- daylightTransitionEnd
- TimeZoneInfo.TransitionTime
Konec letního času.
- baseUtcOffsetDelta
- TimeSpan
Časový rozdíl od základního posunu UTC pro časové pásmo během období pravidel úpravy.
Návraty
Nové pravidlo úpravy