Sdílet prostřednictvím


TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule Metoda

Definice

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)

Zdroj:
TimeZoneInfo.AdjustmentRule.cs
Zdroj:
TimeZoneInfo.AdjustmentRule.cs
Zdroj:
TimeZoneInfo.AdjustmentRule.cs

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 pravidlo úpravy platí. Pokud je DateTime.MaxValue.Datehodnota 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 dateStartdateEnd 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)

Zdroj:
TimeZoneInfo.AdjustmentRule.cs
Zdroj:
TimeZoneInfo.AdjustmentRule.cs
Zdroj:
TimeZoneInfo.AdjustmentRule.cs

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 pravidlo úpravy platí. Pokud je DateTime.MaxValue.Datehodnota , 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

Platí pro