TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Sobrecargas
| Nome | Description |
|---|---|
| CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime) |
Cria uma nova regra de ajuste para um fuso horário específico. |
| CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime, TimeSpan) |
Cria uma nova regra de ajuste para um fuso horário específico. |
CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime)
Cria uma nova regra de ajuste para um fuso horário específico.
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
Parâmetros
- dateStart
- DateTime
A data de efetivação da regra de ajuste. Se o valor do dateStart parâmetro for DateTime.MinValue.Date, esta será a primeira regra de ajuste em vigor para um fuso horário.
- dateEnd
- DateTime
A última data em que a regra de ajuste está em vigor. Se o valor do dateEnd parâmetro for DateTime.MaxValue.Date, a regra de ajuste não terá data de término.
- daylightDelta
- TimeSpan
A alteração de tempo resultante do ajuste. Esse valor é adicionado à propriedade do BaseUtcOffset fuso horário para obter o deslocamento de luz do dia correto do UTC (Tempo Universal Coordenado). Esse valor pode variar de -14 a 14.
- daylightTransitionStart
- TimeZoneInfo.TransitionTime
Um objeto que define o início do horário de verão.
- daylightTransitionEnd
- TimeZoneInfo.TransitionTime
Um objeto que define o fim do horário de verão.
Retornos
Um objeto que representa a nova regra de ajuste.
Exceções
A Kind propriedade do dateStart parâmetro ou dateEnd do parâmetro não é igual Unspecifieda .
- ou -
O daylightTransitionStart parâmetro é igual ao daylightTransitionEnd parâmetro.
- ou -
O dateStart parâmetro ou dateEnd o parâmetro inclui um valor de hora do dia.
dateEnd é anterior a dateStart.
- ou -
daylightDelta é menor que -14 ou maior que 14.
- ou -
A Milliseconds propriedade do daylightDelta parâmetro não é igual a 0.
- ou -
A Ticks propriedade do parâmetro não é igual a daylightDelta um número inteiro de segundos.
Exemplos
O exemplo a seguir cria um fuso horário padrão central alternativo e define três regras de ajuste para os períodos 1976-1986, 1987-2006 e 2007 e posteriores. Essas regras são adicionadas a um objeto genérico List<T> cujos elementos são copiados para uma TimeZoneInfo.AdjustmentRule matriz. Essa matriz é usada na chamada para o TimeZoneInfo.CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[]) método.
// 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())
Comentários
Você pode usar esse método para criar uma ou mais regras de ajuste para um fuso horário personalizado. Uma matriz dos TimeZoneInfo.AdjustmentRule objetos retornados por chamadas para esse método pode ser passada como o adjustmentRules parâmetro para duas sobrecargas do CreateCustomTimeZone método. O exemplo ilustra esse procedimento.
Observação
O CreateAdjustmentRule método só pode ser usado para definir uma regra de ajuste para um novo fuso horário; ele não pode ser usado para modificar uma regra de ajuste para um fuso horário existente.
Os dateStart parâmetros e os dateEnd parâmetros devem ser valores de data sem um componente de hora ou um ArgumentException é gerado. O componente de hora pode ser removido recuperando um DateTime valor da propriedade de data e hora Date , conforme mostrado nas seguintes instruções:
DateTime.MinValue.Date
DateTime.MaxValue.Date
DateTime.Now.Date
dateVariable.Date
A Kind propriedade e os dateStartdateEnd parâmetros também devem ser DateTimeKind.Unspecified.
O valor do daylightDelta parâmetro pode variar de -14 a 14. A soma do daylightDelta parâmetro e do baseUtcOffset parâmetro usado na chamada para o TimeZoneInfo.CreateCustomTimeZone método também deve variar de -14 a 14 ou um InvalidTimeZoneException é gerado.
Observação
O daylightDelta parâmetro define a diferença entre o horário padrão de um fuso horário e seu horário de verão. Ele não se destina a definir o deslocamento de tempo padrão do fuso horário do UTC (Tempo Universal Coordenado). A TimeZoneInfo classe pressupõe que esse deslocamento de UTC seja constante durante toda a vida útil do fuso horário. Para refletir uma alteração no deslocamento de um fuso horário de UTC que não é causada pela aplicação de uma regra de ajuste, você deve usar o CreateCustomTimeZone método para criar um novo fuso horário personalizado.
Aplica-se a
CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime, TimeSpan)
Cria uma nova regra de ajuste para um fuso horário específico.
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
Parâmetros
- dateStart
- DateTime
A data de efetivação da regra de ajuste. Se o valor for DateTime.MinValue.Date, esta será a primeira regra de ajuste em vigor para um fuso horário.
- dateEnd
- DateTime
A última data em que a regra de ajuste está em vigor. Se o valor for DateTime.MaxValue.Date, a regra de ajuste não terá data de término.
- daylightDelta
- TimeSpan
A alteração de tempo resultante do ajuste. Esse valor é adicionado ao fuso BaseUtcOffset horário e BaseUtcOffsetDelta às propriedades para obter o deslocamento de luz do dia correto do UTC (Tempo Universal Coordenado). Esse valor pode variar de -14 a 14.
- daylightTransitionStart
- TimeZoneInfo.TransitionTime
O início do horário de verão.
- daylightTransitionEnd
- TimeZoneInfo.TransitionTime
O fim do horário de verão.
- baseUtcOffsetDelta
- TimeSpan
A diferença de tempo com o deslocamento UTC base para o fuso horário durante o período de regra de ajuste.
Retornos
A nova regra de ajuste.