Ler em inglês

Compartilhar via


TimeZoneInfo.AdjustmentRule Classe

Definição

Fornece informações sobre um ajuste de fuso horário, como a transição do e para o horário de verão.

C#
public sealed class TimeZoneInfo.AdjustmentRule : IEquatable<TimeZoneInfo.AdjustmentRule>, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
C#
[System.Serializable]
public sealed class TimeZoneInfo.AdjustmentRule : IEquatable<TimeZoneInfo.AdjustmentRule>, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
Herança
TimeZoneInfo.AdjustmentRule
Atributos
Implementações

Exemplos

O exemplo a seguir recupera todos os fusos horários definidos no sistema local e exibe informações completas sobre suas regras de ajuste.

C#
private enum WeekOfMonth 
{
   First = 1,
   Second = 2,
   Third = 3,
   Fourth = 4,
   Last = 5,
}

private static void ShowStartAndEndDates()
{
   // Get all time zones from system
   ReadOnlyCollection<TimeZoneInfo> timeZones = TimeZoneInfo.GetSystemTimeZones();
   string[] monthNames = CultureInfo.CurrentCulture.DateTimeFormat.MonthNames;
   // Get each time zone
   foreach (TimeZoneInfo timeZone in timeZones)
   {
      TimeZoneInfo.AdjustmentRule[] adjustments = timeZone.GetAdjustmentRules();
      // Display message for time zones with no adjustments
      if (adjustments.Length == 0)
      {
         Console.WriteLine("{0} has no adjustment rules", timeZone.StandardName);
      }   
      else
      {
         // Handle time zones with 1 or 2+ adjustments differently
         bool showCount = false;
         int ctr = 0;
         string spacer = "";
         
         Console.WriteLine("{0} Adjustment rules", timeZone.StandardName);
         if (adjustments.Length > 1)
         {
            showCount = true;
            spacer = "   ";
         }   
         // Iterate adjustment rules
         foreach (TimeZoneInfo.AdjustmentRule adjustment in adjustments)
         {
            if (showCount)
            { 
               Console.WriteLine("   Adjustment rule #{0}", ctr+1);
               ctr++;
            }
            // Display general adjustment information
            Console.WriteLine("{0}   Start Date: {1:D}", spacer, adjustment.DateStart);
            Console.WriteLine("{0}   End Date: {1:D}", spacer, adjustment.DateEnd);
            Console.WriteLine("{0}   Time Change: {1}:{2:00} hours", spacer, 
                              adjustment.DaylightDelta.Hours, adjustment.DaylightDelta.Minutes);
            // Get transition start information
            TimeZoneInfo.TransitionTime transitionStart = adjustment.DaylightTransitionStart;
            Console.Write("{0}   Annual Start: ", spacer);
            if (transitionStart.IsFixedDateRule)
            {
               Console.WriteLine("On {0} {1} at {2:t}", 
                                 monthNames[transitionStart.Month - 1], 
                                 transitionStart.Day, 
                                 transitionStart.TimeOfDay);
            }
            else
            {
               Console.WriteLine("The {0} {1} of {2} at {3:t}", 
                                 ((WeekOfMonth)transitionStart.Week).ToString(), 
                                 transitionStart.DayOfWeek.ToString(), 
                                 monthNames[transitionStart.Month - 1], 
                                 transitionStart.TimeOfDay);
            }
            // Get transition end information
            TimeZoneInfo.TransitionTime transitionEnd = adjustment.DaylightTransitionEnd;
            Console.Write("{0}   Annual End: ", spacer);
            if (transitionEnd.IsFixedDateRule)
            {
               Console.WriteLine("On {0} {1} at {2:t}", 
                                 monthNames[transitionEnd.Month - 1], 
                                 transitionEnd.Day, 
                                 transitionEnd.TimeOfDay);
            }
            else
            {
               Console.WriteLine("The {0} {1} of {2} at {3:t}", 
                                 ((WeekOfMonth)transitionEnd.Week).ToString(), 
                                 transitionEnd.DayOfWeek.ToString(), 
                                 monthNames[transitionEnd.Month - 1], 
                                 transitionEnd.TimeOfDay);
            }
         }
      }   
      Console.WriteLine();
   } 
}

Veja a seguir uma pequena parte da saída gerada pelo exemplo. A saída exata variará dependendo do sistema operacional e da data em que o exemplo é executado.

Morocco Standard Time Adjustment rules  
   Adjustment rule #1  
      Start Date: Tuesday, January 01, 2008  
      End Date: Wednesday, December 31, 2008  
      Time Change: 1:00 hours  
      Annual Start: The Last Saturday of May at 11:59 PM  
      Annual End: The Last Sunday of August at 11:59 PM  
   Adjustment rule #2  
      Start Date: Thursday, January 01, 2009  
      End Date: Thursday, December 31, 2009  
      Time Change: 1:00 hours  
      Annual Start: The Last Sunday of May at 11:59 PM  
      Annual End: The Third Thursday of August at 11:59 PM  

Coordinated Universal Time has no adjustment rules  

GMT Standard Time Adjustment rules  
   Start Date: Monday, January 01, 0001  
   End Date: Friday, December 31, 9999  
   Time Change: 1:00 hours  
   Annual Start: The Last Sunday of March at 1:00 AM  
   Annual End: The Last Sunday of October at 2:00 AM  

Greenwich Standard Time has no adjustment rules  

W. Europe Standard Time Adjustment rules  
   Start Date: Monday, January 01, 0001  
   End Date: Friday, December 31, 9999  
   Time Change: 1:00 hours  
   Annual Start: The Last Sunday of March at 2:00 AM  
   Annual End: The Last Sunday of October at 3:00 AM  

Central Europe Standard Time Adjustment rules  
   Start Date: Monday, January 01, 0001  
   End Date: Friday, December 31, 9999  
   Time Change: 1:00 hours  
   Annual Start: The Last Sunday of March at 2:00 AM  
   Annual End: The Last Sunday of October at 3:00 AM  

Romance Standard Time Adjustment rules  
   Start Date: Monday, January 01, 0001  
   End Date: Friday, December 31, 9999  
   Time Change: 1:00 hours  
   Annual Start: The Last Sunday of March at 2:00 AM  
   Annual End: The Last Sunday of October at 3:00 AM  

Central European Standard Time Adjustment rules  
   Start Date: Monday, January 01, 0001  
   End Date: Friday, December 31, 9999  
   Time Change: 1:00 hours  
   Annual Start: The Last Sunday of March at 2:00 AM  
   Annual End: The Last Sunday of October at 3:00 AM  

W. Central Africa Standard Time has no adjustment rules  

Comentários

A TimeZoneInfo.AdjustmentRule classe define as datas efetivas de início e término de uma determinada alteração de horário de e para o horário de verão, respectivamente, bem como seu delta (a quantidade exata pela qual o ajuste faz com que o horário padrão do fuso horário mude). Além disso, duas propriedades retornam TimeZoneInfo.TransitionTime objetos que definem quando cada transição de e para o horário padrão ocorre.

Observação

Uma instância da TimeZoneInfo.AdjustmentRule classe é imutável. Depois que um objeto for criado, seus valores não poderão ser modificados.

Para criar um TimeZoneInfo.AdjustmentRule objeto, chame o static método (Shared em Visual BasicTimeZoneInfo.AdjustmentRule.CreateAdjustmentRule). Em seguida, você pode fornecer uma matriz de TimeZoneInfo.AdjustmentRule objetos a duas das sobrecargas do TimeZoneInfo.CreateCustomTimeZone método. Para recuperar as regras de ajuste de um fuso horário específico, chame seu TimeZoneInfo.GetAdjustmentRules método, que retorna uma matriz de TimeZoneInfo.AdjustmentRule objetos.

Propriedades

BaseUtcOffsetDelta

Obtém a diferença de tempo com o deslocamento utc base para o fuso horário durante o período de regra de ajuste.

DateEnd

Obtém a data em que a regra ajuste deixa de estar em vigor.

DateStart

Obtém a data em que a regra de ajuste entra em vigor.

DaylightDelta

Obtém o período de tempo necessário para formar o horário de verão do fuso horário. Esse período é adicionado ao deslocamento do fuso horário do UTC (Tempo Universal Coordenado).

DaylightTransitionEnd

Obtém informações sobre a transição anual do horário de verão de volta para o horário padrão.

DaylightTransitionStart

Obtém informações sobre a transição anual do horário padrão para o horário de verão.

Métodos

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.

Equals(Object)

Indica se a instância atual é igual a outra instância.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Equals(TimeZoneInfo+AdjustmentRule)

Determina se o objeto TimeZoneInfo.AdjustmentRule atual é igual ao segundo objeto TimeZoneInfo.AdjustmentRule.

GetHashCode()

Funciona como uma função de hash para algoritmos de hash atuais e estruturas de dados como tabelas de hash.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

IDeserializationCallback.OnDeserialization(Object)

É executado quando a desserialização de um objeto TimeZoneInfo.AdjustmentRule é concluída.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Preenche um objeto SerializationInfo com os dados necessários para serializar esse objeto.

Aplica-se a

Produto Versões
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 2.0, 2.1

Confira também