Sdílet prostřednictvím


TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule Metoda

Definice

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)

Zdroj:
TimeZoneInfo.AdjustmentRule.cs
Zdroj:
TimeZoneInfo.AdjustmentRule.cs
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 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)

Zdroj:
TimeZoneInfo.AdjustmentRule.cs
Zdroj:
TimeZoneInfo.AdjustmentRule.cs
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 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.

Platí pro