Comparteix a través de


TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule Método

Definición

Sobrecargas

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.

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

Source:
TimeZoneInfo.AdjustmentRule.cs
Source:
TimeZoneInfo.AdjustmentRule.cs
Source:
TimeZoneInfo.AdjustmentRule.cs

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

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

Fecha de vigencia de la regla de ajuste. Si el valor del parámetro dateStart es DateTime.MinValue.Date, esta es la primera regla de ajuste en vigor para una zona horaria.

dateEnd
DateTime

Última fecha en que la regla de ajuste está en vigor. Si el valor del parámetro dateEnd es DateTime.MaxValue.Date, la regla de ajuste no tiene fecha final.

daylightDelta
TimeSpan

Cambio horario que se deriva del ajuste. Este valor se agrega a la propiedad BaseUtcOffset de la zona horaria para obtener la diferencia del horario de verano correcta de la hora universal coordinada (UTC). Este valor puede estar entre -14 y 14.

daylightTransitionStart
TimeZoneInfo.TransitionTime

Objeto que define el inicio del horario de verano.

daylightTransitionEnd
TimeZoneInfo.TransitionTime

Objeto que define el final del horario de verano.

Devoluciones

Objeto que representa la nueva regla de ajuste.

Excepciones

La propiedad Kind el parámetro dateStart o dateEnd no es igual a Unspecified.

o bien

El parámetro daylightTransitionStart es igual al parámetro daylightTransitionEnd.

o bien

El parámetro dateStart o dateEnd incluye un valor de hora del día.

dateEnd es anterior a dateStart.

o bien

daylightDelta es menor que -14 o mayor que 14.

o bien

La propiedad Milliseconds del parámetro daylightDelta no es igual a 0.

o bien

La propiedad Ticks del parámetro daylightDelta no es igual a un número entero de segundos.

Ejemplos

En el ejemplo siguiente se crea una zona horaria estándar central alternativa y se definen tres reglas de ajuste para los períodos 1976-1986, 1987-2006 y 2007 y posteriores. Estas reglas se agregan a un objeto genérico List<T> cuyos elementos se copian en una TimeZoneInfo.AdjustmentRule matriz. A continuación, esta matriz se usa en la llamada al 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())

Comentarios

Puede usar este método para crear una o varias reglas de ajuste para una zona horaria personalizada. Una matriz de los TimeZoneInfo.AdjustmentRule objetos devueltos por llamadas a este método se puede pasar como adjustmentRules parámetro a dos sobrecargas del CreateCustomTimeZone método. En el ejemplo se muestra este procedimiento.

Nota:

El CreateAdjustmentRule método solo se puede usar para definir una regla de ajuste para una nueva zona horaria; no se puede usar para modificar una regla de ajuste para una zona horaria existente.

Los dateStart parámetros y dateEnd deben ser valores de fecha sin un componente de hora o se produce una ArgumentException excepción . El componente de hora se puede quitar recuperando un DateTime valor de la propiedad de Date fecha y hora, como se muestra en las instrucciones siguientes:

DateTime.MinValue.Date  
DateTime.MaxValue.Date  
DateTime.Now.Date   
dateVariable.Date  

La Kind propiedad de los dateStart parámetros y dateEnd también debe ser DateTimeKind.Unspecified.

El valor del daylightDelta parámetro puede oscilar entre -14 y 14. La suma del daylightDelta parámetro y el baseUtcOffset parámetro utilizado en la llamada al TimeZoneInfo.CreateCustomTimeZone método también debe oscilar entre -14 y 14 o se produce una InvalidTimeZoneException excepción .

Nota:

El daylightDelta parámetro define la diferencia entre la hora estándar de una zona horaria y su horario de verano. No está pensado para definir el desplazamiento de hora estándar de la zona horaria de la hora universal coordinada (UTC). La TimeZoneInfo clase supone que este desplazamiento de UTC es constante a lo largo de la vida de la zona horaria. Para reflejar un cambio en el desplazamiento de una zona horaria de utc que no se debe a la aplicación de una regla de ajuste, debe usar el CreateCustomTimeZone método para crear una nueva zona horaria personalizada.

Se aplica a

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

Source:
TimeZoneInfo.AdjustmentRule.cs
Source:
TimeZoneInfo.AdjustmentRule.cs
Source:
TimeZoneInfo.AdjustmentRule.cs

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

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

Fecha de vigencia de la regla de ajuste. Si el valor es DateTime.MinValue.Date, esta es la primera regla de ajuste en vigor para una zona horaria.

dateEnd
DateTime

Última fecha en que la regla de ajuste está en vigor. Si el valor es DateTime.MaxValue.Date, la regla de ajuste no tiene fecha de finalización.

daylightDelta
TimeSpan

Cambio horario que se deriva del ajuste. Este valor se agrega a las propiedades y BaseUtcOffsetDelta de BaseUtcOffset la zona horaria para obtener el desplazamiento de verano correcto de la hora universal coordinada (UTC). Este valor puede estar entre -14 y 14.

daylightTransitionStart
TimeZoneInfo.TransitionTime

El inicio del horario de verano.

daylightTransitionEnd
TimeZoneInfo.TransitionTime

Fin del horario de verano.

baseUtcOffsetDelta
TimeSpan

Diferencia horaria con el desplazamiento UTC base para la zona horaria durante el período de regla de ajuste.

Devoluciones

Nueva regla de ajuste.

Se aplica a