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.