Partage via


TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule Méthode

Définition

Surcharges

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

Crée une règle d’ajustement pour un fuseau horaire particulier.

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

Crée une règle d’ajustement pour un fuseau horaire particulier.

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

Source:
TimeZoneInfo.AdjustmentRule.cs
Source:
TimeZoneInfo.AdjustmentRule.cs
Source:
TimeZoneInfo.AdjustmentRule.cs

Crée une règle d’ajustement pour un fuseau horaire particulier.

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

Paramètres

dateStart
DateTime

Date d’effet de la règle d’ajustement. Si la valeur du paramètre dateStart est DateTime.MinValue.Date, il s’agit de la première règle d’ajustement en vigueur pour un fuseau horaire.

dateEnd
DateTime

Dernière date à laquelle la règle d’ajustement est en vigueur. Si la valeur du paramètre dateEnd est DateTime.MaxValue.Date, la règle d’ajustement n’a pas de date de fin.

daylightDelta
TimeSpan

Changement d’heure qui résulte de l’ajustement. Cette valeur est ajoutée à la propriété BaseUtcOffset du fuseau horaire pour obtenir le décalage de l’heure d’été correct à partir du temps universel coordonné (UTC). Cette valeur peut être comprise entre -14 et 14.

daylightTransitionStart
TimeZoneInfo.TransitionTime

Objet qui définit le début de l’heure d’été.

daylightTransitionEnd
TimeZoneInfo.TransitionTime

Objet qui définit la fin de l’heure d’été.

Retours

Objet qui représente la nouvelle règle d’ajustement.

Exceptions

La propriété Kind du paramètre dateStart ou dateEnd n’est pas égale à Unspecified.

- ou -

Le paramètre daylightTransitionStart est égal au paramètre daylightTransitionEnd.

- ou -

Le paramètre dateStart ou dateEnd inclut une valeur d’heure du jour.

dateEnd est antérieur à dateStart.

- ou -

daylightDelta est inférieur à -14 ou supérieur à 14.

- ou -

La propriété Milliseconds du paramètre daylightDelta n’est pas égale à 0.

- ou -

La propriété Ticks du paramètre daylightDelta n’est pas égale à un nombre entier de secondes.

Exemples

L’exemple suivant crée un autre fuseau horaire standard central et définit trois règles d’ajustement pour les périodes 1976-1986, 1987-2006 et 2007 et ultérieures. Ces règles sont ajoutées à un objet générique List<T> dont les éléments sont ensuite copiés dans un TimeZoneInfo.AdjustmentRule tableau. Ce tableau est ensuite utilisé dans l’appel à la TimeZoneInfo.CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[]) méthode .

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

Remarques

Vous pouvez utiliser cette méthode pour créer une ou plusieurs règles d’ajustement pour un fuseau horaire personnalisé. Un tableau des objets retournés par les TimeZoneInfo.AdjustmentRule appels à cette méthode peut ensuite être passé en tant que adjustmentRules paramètre à deux surcharges de la CreateCustomTimeZone méthode. L’exemple illustre cette procédure.

Notes

La CreateAdjustmentRule méthode ne peut être utilisée que pour définir une règle d’ajustement pour un nouveau fuseau horaire; elle ne peut pas être utilisée pour modifier une règle d’ajustement pour un fuseau horaire existant.

Les dateStart paramètres et dateEnd doivent être des valeurs de date sans composant d’heure ou est ArgumentException levée. Le composant d’heure peut être supprimé en récupérant une DateTime valeur de la propriété de la date et de Date l’heure, comme indiqué dans les instructions suivantes :

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

La Kind propriété des dateStart paramètres et dateEnd doit également être DateTimeKind.Unspecified.

La valeur du daylightDelta paramètre peut être comprise entre -14 et 14. La somme du daylightDelta paramètre et du baseUtcOffset paramètre utilisé dans l’appel à la TimeZoneInfo.CreateCustomTimeZone méthode doit également être comprise entre -14 et 14, sinon un InvalidTimeZoneException est levée.

Notes

Le daylightDelta paramètre définit la différence entre l’heure standard d’un fuseau horaire et l’heure d’été. Il n’est pas destiné à définir le décalage d’heure standard du fuseau horaire par rapport au temps universel coordonné (UTC). La TimeZoneInfo classe suppose que ce décalage par rapport à UTC est constant tout au long de la durée de vie du fuseau horaire. Pour refléter une modification du décalage utc d’un fuseau horaire qui n’est pas due à l’application d’une règle d’ajustement, vous devez utiliser la CreateCustomTimeZone méthode pour créer un nouveau fuseau horaire personnalisé.

S’applique à

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

Source:
TimeZoneInfo.AdjustmentRule.cs
Source:
TimeZoneInfo.AdjustmentRule.cs
Source:
TimeZoneInfo.AdjustmentRule.cs

Crée une règle d’ajustement pour un fuseau horaire particulier.

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

Paramètres

dateStart
DateTime

Date d’effet de la règle d’ajustement. Si la valeur est DateTime.MinValue.Date, il s’agit de la première règle d’ajustement appliquée pour un fuseau horaire.

dateEnd
DateTime

Dernière date à laquelle la règle d’ajustement est en vigueur. Si la valeur est DateTime.MaxValue.Date, la règle d’ajustement n’a pas de date de fin.

daylightDelta
TimeSpan

Changement d’heure qui résulte de l’ajustement. Cette valeur est ajoutée aux propriétés et du BaseUtcOffsetBaseUtcOffsetDelta fuseau horaire pour obtenir le décalage d’été correct à partir du temps universel coordonné (UTC). Cette valeur peut être comprise entre -14 et 14.

daylightTransitionStart
TimeZoneInfo.TransitionTime

Début de l’heure d’été.

daylightTransitionEnd
TimeZoneInfo.TransitionTime

La fin de l’heure d’été.

baseUtcOffsetDelta
TimeSpan

Différence de temps avec le décalage UTC de base pour le fuseau horaire pendant la période de règle d’ajustement.

Retours

Nouvelle règle d’ajustement.

S’applique à