TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule Methode

Definitie

Overloads

Name Description
CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime)

Hiermee maakt u een nieuwe aanpassingsregel voor een bepaalde tijdzone.

CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime, TimeSpan)

Hiermee maakt u een nieuwe aanpassingsregel voor een bepaalde tijdzone.

CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime)

Bron:
TimeZoneInfo.AdjustmentRule.cs
Bron:
TimeZoneInfo.AdjustmentRule.cs
Bron:
TimeZoneInfo.AdjustmentRule.cs
Bron:
TimeZoneInfo.AdjustmentRule.cs
Bron:
TimeZoneInfo.AdjustmentRule.cs

Hiermee maakt u een nieuwe aanpassingsregel voor een bepaalde tijdzone.

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

Parameters

dateStart
DateTime

De ingangsdatum van de aanpassingsregel. Als de waarde van de dateStart parameter is DateTime.MinValue.Date, is dit de eerste aanpassingsregel die van kracht is voor een tijdzone.

dateEnd
DateTime

De laatste datum waarop de aanpassingsregel van kracht is. Als de waarde van de dateEnd parameter is, heeft DateTime.MaxValue.Datede aanpassingsregel geen einddatum.

daylightDelta
TimeSpan

De tijdswijziging die het resultaat is van de aanpassing. Deze waarde wordt toegevoegd aan de eigenschap van BaseUtcOffset de tijdzone om de juiste zomertijd te verkrijgen van Coordinated Universal Time (UTC). Deze waarde kan variëren van -14 tot 14.

daylightTransitionStart
TimeZoneInfo.TransitionTime

Een object dat het begin van de zomertijd definieert.

daylightTransitionEnd
TimeZoneInfo.TransitionTime

Een object dat het einde van de zomertijd definieert.

Retouren

Een object dat de nieuwe aanpassingsregel voorstelt.

Uitzonderingen

De Kind eigenschap van de dateStart of dateEnd parameter is niet gelijk aan Unspecified.

– of –

De daylightTransitionStart parameter is gelijk aan de daylightTransitionEnd parameter.

– of –

De dateStart of dateEnd parameter bevat een tijd van de dagwaarde.

dateEnd is eerder dan dateStart.

– of –

daylightDelta is kleiner dan -14 of groter dan 14.

– of –

De Milliseconds eigenschap van de daylightDelta parameter is niet gelijk aan 0.

– of –

De Ticks eigenschap van de daylightDelta parameter is niet gelijk aan een geheel aantal seconden.

Voorbeelden

In het volgende voorbeeld wordt een alternatieve centrale standaardtijdzone gemaakt en worden drie aanpassingsregels gedefinieerd voor de perioden 1976-1986, 1987-2006 en 2007 en hoger. Deze regels worden toegevoegd aan een algemeen List<T> object waarvan de elementen vervolgens naar een TimeZoneInfo.AdjustmentRule matrix worden gekopieerd. Deze matrix wordt vervolgens gebruikt in de aanroep van de TimeZoneInfo.CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[]) methode.

// 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())

Opmerkingen

U kunt deze methode gebruiken om een of meer aanpassingsregels te maken voor een aangepaste tijdzone. Een matrix van de TimeZoneInfo.AdjustmentRule objecten die door aanroepen naar deze methode worden geretourneerd, kan vervolgens worden doorgegeven als de adjustmentRules parameter voor twee overbelastingen van de CreateCustomTimeZone methode. In het voorbeeld ziet u deze procedure.

Note

De methode kan alleen worden gebruikt om een aanpassingsregel voor een nieuwe tijdzone te definiëren. Deze CreateAdjustmentRule kan niet worden gebruikt om een aanpassingsregel voor een bestaande tijdzone te wijzigen.

De dateStart en dateEnd parameters moeten datumwaarden zijn zonder een tijdonderdeel of een ArgumentException wordt gegenereerd. Het tijdonderdeel kan worden verwijderd door een DateTime waarde op te halen uit de eigenschap datum en tijd Date , zoals wordt weergegeven in de volgende instructies:

DateTime.MinValue.Date
DateTime.MaxValue.Date
DateTime.Now.Date
dateVariable.Date

De Kind eigenschap van de dateStart en dateEnd parameters moet ook zijn DateTimeKind.Unspecified.

De waarde van de daylightDelta parameter kan variëren van -14 tot 14. De som van de daylightDelta parameter en de baseUtcOffset parameter die in de aanroep naar de TimeZoneInfo.CreateCustomTimeZone methode wordt gebruikt, moeten ook variëren van -14 tot 14 of een InvalidTimeZoneException parameter die wordt gegenereerd.

Note

De daylightDelta parameter definieert het verschil tussen de standaardtijd van een tijdzone en de zomertijd. Het is niet bedoeld om de standaardtijdverschuiving van de tijdzone van Coordinated Universal Time (UTC) te definiëren. In TimeZoneInfo de klasse wordt ervan uitgegaan dat deze verschuiving van UTC gedurende de levensduur van de tijdzone constant is. Als u een wijziging wilt weergeven in de offset van een tijdzone van UTC die niet wordt veroorzaakt door de toepassing van een aanpassingsregel, moet u de CreateCustomTimeZone methode gebruiken om een nieuwe aangepaste tijdzone te maken.

Van toepassing op

CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime, TimeSpan)

Bron:
TimeZoneInfo.AdjustmentRule.cs
Bron:
TimeZoneInfo.AdjustmentRule.cs
Bron:
TimeZoneInfo.AdjustmentRule.cs
Bron:
TimeZoneInfo.AdjustmentRule.cs
Bron:
TimeZoneInfo.AdjustmentRule.cs

Hiermee maakt u een nieuwe aanpassingsregel voor een bepaalde tijdzone.

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

Parameters

dateStart
DateTime

De ingangsdatum van de aanpassingsregel. Als de waarde is DateTime.MinValue.Date, is dit de eerste aanpassingsregel die van kracht is voor een tijdzone.

dateEnd
DateTime

De laatste datum waarop de aanpassingsregel van kracht is. Als de waarde is DateTime.MaxValue.Date, heeft de aanpassingsregel geen einddatum.

daylightDelta
TimeSpan

De tijdswijziging die het resultaat is van de aanpassing. Deze waarde wordt toegevoegd aan de tijdzone BaseUtcOffset en BaseUtcOffsetDelta eigenschappen om de juiste zomertijd te verkrijgen van Coordinated Universal Time (UTC). Deze waarde kan variëren van -14 tot 14.

daylightTransitionStart
TimeZoneInfo.TransitionTime

Het begin van zomertijd.

daylightTransitionEnd
TimeZoneInfo.TransitionTime

Het einde van de zomertijd.

baseUtcOffsetDelta
TimeSpan

Het tijdsverschil met de basis-UTC-offset voor de tijdzone tijdens de aanpassingsregelperiode.

Retouren

De nieuwe aanpassingsregel.

Van toepassing op