Ler en inglés

Compartir por


TimeZoneInfo.AdjustmentRule Clase

Definición

Proporciona información sobre un ajuste de zona horaria, como el cambio de horario de verano.

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
Herencia
TimeZoneInfo.AdjustmentRule
Atributos
Implementaciones

Ejemplos

En el ejemplo siguiente se recuperan todas las zonas horarias definidas en el sistema local y se muestra información completa sobre sus reglas 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();
   } 
}

A continuación se muestra una pequeña parte de la salida generada por el ejemplo. La salida exacta variará en función del sistema operativo y de la fecha en la que se ejecute el ejemplo.

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  

Comentarios

La TimeZoneInfo.AdjustmentRule clase define las fechas de inicio y finalización efectivas de un cambio de hora determinado hacia y desde el horario de verano, respectivamente, así como su delta (la cantidad exacta por la que el ajuste hace que cambie el tiempo estándar de la zona horaria). Además, dos propiedades devuelven TimeZoneInfo.TransitionTime objetos que definen cuándo se produce cada transición a y desde el momento estándar.

Nota

Una instancia de la TimeZoneInfo.AdjustmentRule clase es inmutable. Una vez creado un objeto, sus valores no se pueden modificar.

Para crear un TimeZoneInfo.AdjustmentRule objeto, llame al static método (Shared en Visual Basic). TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule A continuación, puede proporcionar una matriz de TimeZoneInfo.AdjustmentRule objetos a dos de las sobrecargas del TimeZoneInfo.CreateCustomTimeZone método . Para recuperar las reglas de ajuste de una zona horaria determinada, llame a su TimeZoneInfo.GetAdjustmentRules método , que devuelve una matriz de TimeZoneInfo.AdjustmentRule objetos .

Propiedades

BaseUtcOffsetDelta

Obtiene la diferencia horaria con el desplazamiento utc base para la zona horaria durante el período de regla de ajuste.

DateEnd

Obtiene la fecha en la que la regla de ajuste deja de estar en vigor.

DateStart

Obtiene la fecha de entrada en vigor de la regla de ajuste.

DaylightDelta

Obtiene la cantidad de tiempo necesaria para formar el horario de verano de la zona horaria. Esta cantidad de tiempo se agrega a la diferencia con la hora universal coordinada (UTC) de la zona horaria.

DaylightTransitionEnd

Obtiene información sobre la transición anual del horario de verano al horario estándar.

DaylightTransitionStart

Obtiene información sobre la transición anual del horario estándar al horario de verano.

Métodos

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

Crea una nueva regla de ajuste para una zona horaria determinada.

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

Crea una nueva regla de ajuste para una zona horaria determinada.

Equals(Object)

Indica si la instancia actual es igual a otra instancia.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
Equals(TimeZoneInfo+AdjustmentRule)

Determina si el objeto TimeZoneInfo.AdjustmentRule actual es igual a un segundo objeto TimeZoneInfo.AdjustmentRule.

GetHashCode()

Actúa como una función hash para los algoritmos hash y estructuras de datos como las tablas hash.

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

IDeserializationCallback.OnDeserialization(Object)

Se ejecuta cuando se completa la deserialización de un objeto TimeZoneInfo.AdjustmentRule.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Rellena un objeto SerializationInfo con los datos necesarios para serializar este objeto.

Se aplica a

Produto Versións
.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

Consulte también