TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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)
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)
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.