TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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)
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)
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.