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í
| Name | Description |
|---|---|
| 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.Datehodnota parametru dateStart , jedná se o první pravidlo úpravy, které platí pro časové pásmo.
- dateEnd
- DateTime
Poslední datum, kdy je pravidlo úpravy platné. Pokud je DateTime.MaxValue.Datehodnota parametru dateEnd , pravidlo úpravy nemá žádné koncové datum.
- daylightDelta
- TimeSpan
Časová změna, která je výsledkem úpravy. Tato hodnota se přidá do vlastnosti časového pásma, aby se získal správný letní posun od koordinovaného univerzálního BaseUtcOffset času (UTC). Tato hodnota může být v rozsahu od -14 do 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 KinddateStart nebo dateEnd parametr se nerovná Unspecified.
nebo
Parametr daylightTransitionStart se rovná parametru daylightTransitionEnd .
nebo
Parametr dateStart obsahuje dateEnd denní hodnotu.
dateEnd je starší než dateStart.
nebo
daylightDelta je menší než -14 nebo větší než 14.
nebo
Milliseconds Vlastnost parametru daylightDelta se nerovná 0.
nebo
Ticks Vlastnost 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 úpravy pro období 1976–1986, 1987–2006 a 2007 a vyšší. Tato pravidla se přidají do obecného List<T> objektu, jehož prvky se pak zkopírují do TimeZoneInfo.AdjustmentRule 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 úpravy pro vlastní časové pásmo.
TimeZoneInfo.AdjustmentRule Pole objektů vrácených voláním této metody lze pak předat jako adjustmentRules parametr do dvou přetížení CreateCustomTimeZone metody. Tento postup znázorňuje tento příklad.
Poznámka:
Metodu CreateAdjustmentRule lze použít pouze k definování pravidla úpravy pro nové časové pásmo. Nedá se použít k úpravě pravidla pro stávající časové pásmo.
dateEnd Parametry dateStart musí být hodnoty kalendářních dat bez součásti času nebo ArgumentException je vyvolán. Časovou komponentu 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 a dateEnd parametry musí být DateTimeKind.Unspecifiedtaké .
Hodnota parametru může být v rozsahu daylightDelta od -14 do 14. Součet parametru daylightDelta a baseUtcOffset parametru použitého při volání TimeZoneInfo.CreateCustomTimeZone metody musí být také v rozsahu od -14 do 14 nebo InvalidTimeZoneException je vyvolán.
Poznámka:
Parametr daylightDelta definuje rozdíl mezi standardním časem časového pásma a letním časem. Úč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 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, je nutné 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.Datehodnota , jedná se o první pravidlo úpravy, které platí pro časové pásmo.
- dateEnd
- DateTime
Poslední datum, kdy je pravidlo úpravy platné. Pokud je DateTime.MaxValue.Datehodnota, pravidlo úpravy nemá žádné koncové datum.
- daylightDelta
- TimeSpan
Časová změna, která je výsledkem úpravy. Tato hodnota se přidá k časovým pásmům BaseUtcOffset a BaseUtcOffsetDelta vlastnostem pro získání správného letního posunu od koordinovaného univerzálního času (UTC). Tato hodnota může být v rozsahu od -14 do 14.
- daylightTransitionStart
- TimeZoneInfo.TransitionTime
Začátek letního času.
- daylightTransitionEnd
- TimeZoneInfo.TransitionTime
Konec letního času.
- baseUtcOffsetDelta
- TimeSpan
Časový rozdíl se základním posunem UTC pro časové pásmo během období úprav
Návraty
Nové pravidlo úpravy.