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
CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime) |
Cria uma nova regra de ajuste para um determinado fuso horário. |
CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime, TimeSpan) |
Cria uma nova regra de ajuste para um determinado fuso horário. |
CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime)
Cria uma nova regra de ajuste para um determinado fuso horário.
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 efetiva da regra de ajuste. Se o valor do parâmetro dateStart
for DateTime.MinValue.Date
, essa será a primeira regra de ajuste em vigor para um fuso horário.
- dateEnd
- DateTime
A última data em que a regra de ajuste estava em vigor. Se o valor do parâmetro dateEnd
for DateTime.MaxValue.Date
, a regra de ajuste não terá nenhuma data de término.
- daylightDelta
- TimeSpan
A alteração de tempo que resulta do ajuste. Esse valor é adicionado à propriedade BaseUtcOffset de fuso horário para obter a compensação correta de horário em UTC (Tempo Universal Coordenado). Este 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 final do horário de verão.
Retornos
Um objeto que representa a nova regra de ajuste.
Exceções
A propriedade Kind do dateStart
ou o parâmetro dateEnd
não é igual ao parâmetro Unspecified.
- ou -
O parâmetro daylightTransitionStart
é igual ao parâmetro daylightTransitionEnd
.
- ou -
O parâmetro dateStart
ou dateEnd
inclui um valor de hora do dia.
dateEnd
é anterior a dateStart
.
- ou -
daylightDelta
é menor que -14 ou maior que 14.
- ou -
A propriedade Milliseconds do parâmetro daylightDelta
não é igual a 0.
- ou -
A propriedade Ticks do parâmetro daylightDelta
não é igual a 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 dateStart
dateEnd
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 o baseUtcOffset
parâmetro usado na chamada para o TimeZoneInfo.CreateCustomTimeZone método também devem 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 o horário de verão. 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 determinado fuso horário.
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 efetiva da regra de ajuste. Se o valor for DateTime.MinValue.Date
, essa será a primeira regra de ajuste em vigor para um fuso horário.
- dateEnd
- DateTime
A última data em que a regra de ajuste estava 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 que resulta do ajuste. Esse valor é adicionado ao fuso horário BaseUtcOffset e BaseUtcOffsetDelta às propriedades para obter o deslocamento correto do horário de verão do UTC (Tempo Universal Coordenado). Este 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.