TimeZoneInfo.CreateCustomTimeZone Método

Definición

Define una zona horaria que no se encuentra en el equipo local.

Sobrecargas

CreateCustomTimeZone(String, TimeSpan, String, String)

Crea una zona horaria personalizada con un identificador especificado, un desplazamiento de hora universal coordinada (UTC), un nombre para mostrar y un nombre para mostrar de hora estándar.

CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[])

Crea una zona horaria personalizada con un identificador especificado, un desplazamiento de la hora universal coordinada (UTC), un nombre para mostrar, un nombre de hora estándar, un nombre de horario de verano y las reglas del horario de verano.

CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[], Boolean)

Crea una zona horaria personalizada con un identificador especificado, un desplazamiento de hora universal coordinada (UTC), un nombre para mostrar, un nombre de hora estándar, un nombre del horario de verano, las reglas del horario de verano y un valor que indica si el objeto devuelto refleja la información del horario de verano.

CreateCustomTimeZone(String, TimeSpan, String, String)

Crea una zona horaria personalizada con un identificador especificado, un desplazamiento de hora universal coordinada (UTC), un nombre para mostrar y un nombre para mostrar de hora estándar.

public:
 static TimeZoneInfo ^ CreateCustomTimeZone(System::String ^ id, TimeSpan baseUtcOffset, System::String ^ displayName, System::String ^ standardDisplayName);
public static TimeZoneInfo CreateCustomTimeZone (string id, TimeSpan baseUtcOffset, string? displayName, string? standardDisplayName);
public static TimeZoneInfo CreateCustomTimeZone (string id, TimeSpan baseUtcOffset, string displayName, string standardDisplayName);
static member CreateCustomTimeZone : string * TimeSpan * string * string -> TimeZoneInfo
Public Shared Function CreateCustomTimeZone (id As String, baseUtcOffset As TimeSpan, displayName As String, standardDisplayName As String) As TimeZoneInfo

Parámetros

id
String

Identificador de la zona horaria.

baseUtcOffset
TimeSpan

Un objeto que representa la diferencia horaria entre esta zona horaria y la hora universal coordinada (UTC).

displayName
String

Nombre para mostrar de la nueva zona horaria.

standardDisplayName
String

Nombre de la hora estándar de la nueva zona horaria.

Devoluciones

TimeZoneInfo

Nueva zona horaria.

Excepciones

El parámetro id es null.

El parámetro id es una cadena vacía ("").

o bien El parámetro baseUtcOffset no representa un número entero de minutos.

El parámetro baseUtcOffset es mayor que 14 horas o menor que -14 horas.

Ejemplos

En el ejemplo siguiente se crea una zona horaria personalizada para las regiones de Mawson y Holme Bay de la Antártida. A continuación, muestra el resultado de convertir la hora local a la hora de la nueva zona horaria.

string displayName = "(GMT+06:00) Antarctica/Mawson Time";
string standardName = "Mawson Time"; 
TimeSpan offset = new TimeSpan(06, 00, 00);
TimeZoneInfo mawson = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName);
Console.WriteLine("The current time is {0} {1}", 
                  TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.Local, mawson),
                  mawson.StandardName);
let displayName = "(GMT+06:00) Antarctica/Mawson Time"
let standardName = "Mawson Time" 
let offset = TimeSpan(06, 00, 00)
let mawson = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName)
printfn $"The current time is {TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.Local, mawson)} {mawson.StandardName}"
Dim displayName As String = "(GMT+06:00) Antarctica/Mawson Time"
Dim standardName As String = "Mawson Time" 
Dim offset As TimeSpan = New TimeSpan(06, 00, 00)
Dim mawson As TimeZoneInfo = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName)
Console.WriteLine("The current time is {0} {1}", _ 
                  TimeZoneInfo.ConvertTime(Date.Now, TimeZoneInfo.Local, mawson), _
                  mawson.StandardName)

Comentarios

Esta sobrecarga del CreateCustomTimeZone(String, TimeSpan, String, String) método es adecuada para crear una zona horaria que no tenga ajustes (es decir, una zona horaria que no admita el horario de verano). Para definir una zona horaria que incluya ajustes para el horario de verano, use el TimeZoneInfo.CreateCustomTimeZone método o TimeZoneInfo.CreateCustomTimeZone .

En la tabla siguiente se muestra la relación entre los parámetros que se proporcionan al TimeZoneInfo.CreateCustomTimeZone método y las propiedades del TimeZoneInfo objeto devueltos por la llamada al método .

Parámetro CreateCustomTimeZone Propiedad TimeZoneInfo
id Id
baseUtcOffset BaseUtcOffset
displayName DisplayName
standardDisplayName StandardName

Normalmente, el nombre de hora estándar de la zona horaria y su identificador son los mismos. Sin embargo, la longitud del identificador de la zona horaria no debe superar los 32 caracteres. La cadena que se pasa al displayName parámetro sigue un formato bastante estándar. La primera parte del nombre para mostrar es el desplazamiento base de la zona horaria de la hora universal coordinada, que se indica mediante el acrónimo GMT (para la hora media de Greenwich), entre paréntesis. Esto va seguido de una cadena que identifica la propia zona horaria, o una o varias de las ciudades, regiones o países de la zona horaria, o ambas. Por ejemplo:

(GMT+02:00) Athens, Beirut, Istanbul, Minsk  
(GMT-02:00) Mid-Atlantic  
(GMT-07:00) Mountain Time (US & Canada)  

Consulte también

Se aplica a

CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[])

Crea una zona horaria personalizada con un identificador especificado, un desplazamiento de la hora universal coordinada (UTC), un nombre para mostrar, un nombre de hora estándar, un nombre de horario de verano y las reglas del horario de verano.

public:
 static TimeZoneInfo ^ CreateCustomTimeZone(System::String ^ id, TimeSpan baseUtcOffset, System::String ^ displayName, System::String ^ standardDisplayName, System::String ^ daylightDisplayName, cli::array <TimeZoneInfo::AdjustmentRule ^> ^ adjustmentRules);
public static TimeZoneInfo CreateCustomTimeZone (string id, TimeSpan baseUtcOffset, string? displayName, string? standardDisplayName, string? daylightDisplayName, TimeZoneInfo.AdjustmentRule[]? adjustmentRules);
public static TimeZoneInfo CreateCustomTimeZone (string id, TimeSpan baseUtcOffset, string displayName, string standardDisplayName, string daylightDisplayName, TimeZoneInfo.AdjustmentRule[] adjustmentRules);
static member CreateCustomTimeZone : string * TimeSpan * string * string * string * TimeZoneInfo.AdjustmentRule[] -> TimeZoneInfo
Public Shared Function CreateCustomTimeZone (id As String, baseUtcOffset As TimeSpan, displayName As String, standardDisplayName As String, daylightDisplayName As String, adjustmentRules As TimeZoneInfo.AdjustmentRule()) As TimeZoneInfo

Parámetros

id
String

Identificador de la zona horaria.

baseUtcOffset
TimeSpan

Un objeto que representa la diferencia horaria entre esta zona horaria y la hora universal coordinada (UTC).

displayName
String

Nombre para mostrar de la nueva zona horaria.

standardDisplayName
String

Nombre de la hora estándar de la nueva zona horaria.

daylightDisplayName
String

Nombre del horario de verano de la nueva zona horaria.

adjustmentRules
TimeZoneInfo.AdjustmentRule[]

Matriz que aumenta el desplazamiento de hora UTC base para un período determinado.

Devoluciones

TimeZoneInfo

Objeto TimeZoneInfo que representa la nueva zona horaria.

Excepciones

El parámetro id es null.

El parámetro id es una cadena vacía ("").

o bien El parámetro baseUtcOffset no representa un número entero de minutos.

El parámetro baseUtcOffset es mayor que 14 horas o menor que -14 horas.

Las reglas de ajuste especificadas en el parámetro adjustmentRules se superponen.

o bien Las reglas de ajuste especificadas en el parámetro adjustmentRules no están en orden cronológico.

o bien Uno o más elementos de adjustmentRules son null.

o bien Pueden aplicarse varias reglas de ajuste aplicadas a una fecha.

o bien La suma del parámetro baseUtcOffset y el valor DaylightDelta de uno o más objetos de la matriz adjustmentRules es mayor que 14 horas o menor que -14 horas.

Ejemplos

En el ejemplo siguiente se crea una zona horaria personalizada para la estación palmer y la isla Anvers en la Antártida. A continuación, convierte la hora local a la hora de la nueva zona horaria y muestra el resultado.

// Define transition times to/from DST
TimeZoneInfo.TransitionTime startTransition, endTransition;
startTransition = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 4, 0, 0), 
                                                                  10, 2, DayOfWeek.Sunday); 
endTransition = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 3, 0, 0), 
                                                                3, 2, DayOfWeek.Sunday);
// Define adjustment rule
TimeSpan delta = new TimeSpan(1, 0, 0);
TimeZoneInfo.AdjustmentRule adjustment;
adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(new DateTime(1999, 10, 1), DateTime.MaxValue.Date, delta, startTransition, endTransition);
// Create array for adjustment rules
TimeZoneInfo.AdjustmentRule[] adjustments = {adjustment};
// Define other custom time zone arguments
string displayName = "(GMT-04:00) Antarctica/Palmer Time";
string standardName = "Palmer Time";
string daylightName = "Palmer Daylight Time";
TimeSpan offset = new TimeSpan(-4, 0, 0);
TimeZoneInfo palmer = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName, daylightName, adjustments);
Console.WriteLine("The current time is {0} {1}",  
                  TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.Local, palmer), 
                  palmer.StandardName);
// Define transition times to/from DST
let startTransition = 
    TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 4, 0, 0), 10, 2, DayOfWeek.Sunday) 
let endTransition = 
    TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 3, 0, 0), 3, 2, DayOfWeek.Sunday)
// Define adjustment rule
let delta = TimeSpan(1, 0, 0)
let adjustment = 
    TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(DateTime(1999, 10, 1), DateTime.MaxValue.Date, delta, startTransition, endTransition)
// Create array for adjustment rules
let adjustments = [| adjustment |]
// Define other custom time zone arguments
let displayName = "(GMT-04:00) Antarctica/Palmer Time"
let standardName = "Palmer Time"
let daylightName = "Palmer Daylight Time"
let offset = TimeSpan(-4, 0, 0)
let palmer = 
    TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName, daylightName, adjustments)
printfn $"The current time is {TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.Local, palmer)} {palmer.StandardName}"
' Define transition times to/from DST
Dim startTransition As TimeZoneInfo.TransitionTime = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#04:00:00#, 10, 2, DayOfWeek.Sunday) 
Dim endTransition As TimeZoneInfo.TransitionTime = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#3:00:00#, 3, 2, DayOfWeek.Sunday)
' Define adjustment rule
Dim delta As TimeSpan = New TimeSpan(1, 0, 0)
Dim adjustment As TimeZoneInfo.AdjustmentRule = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(#10/01/1999#, Date.MaxValue.Date, delta, startTransition, endTransition)
' Create array for adjustment rules
Dim adjustments() As TimeZoneInfo.AdjustmentRule = {adjustment}
' Define other custom time zone arguments
Dim DisplayName As String = "(GMT-04:00) Antarctica/Palmer Time"
Dim standardName As String = "Palmer Standard Time"
Dim daylightName As String = "Palmer Daylight Time"
Dim offset As TimeSpan = New TimeSpan(-4, 0, 0)
Dim palmer As TimeZoneInfo = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName, daylightName, adjustments)
Console.WriteLine("The current time is {0} {1}", _ 
                  TimeZoneInfo.ConvertTime(Date.Now, TimeZoneInfo.Local, palmer), _
                  palmer.StandardName)

Comentarios

Esta sobrecarga del TimeZoneInfo.CreateCustomTimeZone método es adecuada para crear una zona horaria que admita el horario de verano. Para definir una zona horaria que no admita el horario de verano, use el TimeZoneInfo.CreateCustomTimeZone método o TimeZoneInfo.CreateCustomTimeZone .

En la tabla siguiente se muestra la relación entre los parámetros que se proporcionan al TimeZoneInfo.CreateCustomTimeZone método y los miembros del TimeZoneInfo objeto devueltos por la llamada al método .

Parámetro CreateCustomTimeZone Miembro TimeZoneInfo
id Id
baseUtcOffset BaseUtcOffset
displayName DisplayName
standardDisplayName StandardName
daylightDisplayName DaylightName
adjustmentRules Matriz de System.TimeZoneInfo.AdjustmentRule objetos devueltos por el GetAdjustmentRules método .

Normalmente, el nombre de hora estándar de la zona horaria y su identificador son los mismos. Sin embargo, la longitud del identificador de la zona horaria no debe superar los 32 caracteres. La cadena que se pasa al displayName parámetro sigue un formato bastante estándar. La primera parte del nombre para mostrar es el desplazamiento base de la zona horaria de la hora universal coordinada, que se indica mediante el acrónimo GMT (para la hora media de Greenwich), entre paréntesis. Esto va seguido de una cadena que identifica la propia zona horaria, o una o varias de las ciudades, regiones o países de la zona horaria, o ambas. Por ejemplo:

(GMT+02:00) Athens, Beirut, Istanbul, Minsk  
(GMT-02:00) Mid-Atlantic  
(GMT-07:00) Mountain Time (US & Canada)  

El baseUtcOffset parámetro define el desplazamiento de la zona horaria personalizada de la hora universal coordinada (UTC) para todas las reglas de ajuste de la zona horaria. En otras palabras, el TimeZoneInfo modelo de objetos supone que el desplazamiento de la zona horaria de utc es constante a lo largo de la vida útil de la zona horaria y existe independientemente de las reglas de ajuste concretas. Para reflejar una zona horaria que ha cambiado su desplazamiento de UTC, debe crear un nuevo objeto de zona horaria.

Las reglas de ajuste de una zona horaria se definen mediante lo siguiente:

  1. Llamar al CreateFloatingDateRule método o CreateFixedDateRule para definir el tiempo de transición inicial y final para cada regla de ajuste.

  2. Llamar al CreateAdjustmentRule método para cada regla de ajuste.

  3. Asignar las reglas de ajuste a una matriz que se puede pasar como adjustmentRules parámetro.

Consulte también

Se aplica a

CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[], Boolean)

Crea una zona horaria personalizada con un identificador especificado, un desplazamiento de hora universal coordinada (UTC), un nombre para mostrar, un nombre de hora estándar, un nombre del horario de verano, las reglas del horario de verano y un valor que indica si el objeto devuelto refleja la información del horario de verano.

public:
 static TimeZoneInfo ^ CreateCustomTimeZone(System::String ^ id, TimeSpan baseUtcOffset, System::String ^ displayName, System::String ^ standardDisplayName, System::String ^ daylightDisplayName, cli::array <TimeZoneInfo::AdjustmentRule ^> ^ adjustmentRules, bool disableDaylightSavingTime);
public static TimeZoneInfo CreateCustomTimeZone (string id, TimeSpan baseUtcOffset, string? displayName, string? standardDisplayName, string? daylightDisplayName, TimeZoneInfo.AdjustmentRule[]? adjustmentRules, bool disableDaylightSavingTime);
public static TimeZoneInfo CreateCustomTimeZone (string id, TimeSpan baseUtcOffset, string displayName, string standardDisplayName, string daylightDisplayName, TimeZoneInfo.AdjustmentRule[] adjustmentRules, bool disableDaylightSavingTime);
static member CreateCustomTimeZone : string * TimeSpan * string * string * string * TimeZoneInfo.AdjustmentRule[] * bool -> TimeZoneInfo
Public Shared Function CreateCustomTimeZone (id As String, baseUtcOffset As TimeSpan, displayName As String, standardDisplayName As String, daylightDisplayName As String, adjustmentRules As TimeZoneInfo.AdjustmentRule(), disableDaylightSavingTime As Boolean) As TimeZoneInfo

Parámetros

id
String

Identificador de la zona horaria.

baseUtcOffset
TimeSpan

Objeto TimeSpan que representa la diferencia horaria entre esta zona horaria y la hora universal coordinada (UTC).

displayName
String

Nombre para mostrar de la nueva zona horaria.

standardDisplayName
String

Nombre de la hora estándar de la nueva zona horaria.

daylightDisplayName
String

Nombre del horario de verano de la nueva zona horaria.

adjustmentRules
TimeZoneInfo.AdjustmentRule[]

Matriz de objetos TimeZoneInfo.AdjustmentRule que aumentan el desplazamiento de hora UTC base para un período determinado.

disableDaylightSavingTime
Boolean

Es true para descartar cualquier información relacionada con el horario de verano presente en adjustmentRules con el nuevo objeto; en caso contrario, es false.

Devoluciones

TimeZoneInfo

Nueva zona horaria. Si el parámetro disableDaylightSavingTime es true, el objeto devuelto no tiene ningún dato del horario de verano.

Excepciones

El parámetro id es null.

El parámetro id es una cadena vacía ("").

o bien El parámetro baseUtcOffset no representa un número entero de minutos.

El parámetro baseUtcOffset es mayor que 14 horas o menor que -14 horas.

Las reglas de ajuste especificadas en el parámetro adjustmentRules se superponen.

o bien Las reglas de ajuste especificadas en el parámetro adjustmentRules no están en orden cronológico.

o bien Uno o más elementos de adjustmentRules son null.

o bien Pueden aplicarse varias reglas de ajuste aplicadas a una fecha.

o bien La suma del parámetro baseUtcOffset y el valor DaylightDelta de uno o más objetos de la matriz adjustmentRules es mayor que 14 horas o menor que -14 horas.

Ejemplos

En el ejemplo siguiente se crea una zona horaria personalizada para la estación palmer y la isla Anvers en la Antártida. Establece el disableDaylightSavingTime parámetro en la llamada al TimeZoneInfo.CreateCustomTimeZone método trueen . A continuación, muestra el nuevo nombre del horario de verano de la zona horaria, si hay uno presente, y el número de reglas de ajuste para confirmar que la nueva zona horaria no tiene información sobre el horario de verano.

// Define transition times to/from DST
TimeZoneInfo.TransitionTime startTransition, endTransition;
startTransition = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 4, 0, 0),
                                                                  10, 2, DayOfWeek.Sunday); 
endTransition = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1,3, 0, 0), 
                                                                3, 2, DayOfWeek.Sunday);
// Define adjustment rule
TimeSpan delta = new TimeSpan(1, 0, 0);
TimeZoneInfo.AdjustmentRule adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(new DateTime(1999, 10, 1), 
                                      DateTime.MaxValue.Date, delta, startTransition, endTransition);
// Create array for adjustment rules
TimeZoneInfo.AdjustmentRule[] adjustments = {adjustment};
// Define other custom time zone arguments
string displayName = "(GMT-04:00) Antarctica/Palmer Time";
string standardName = "Palmer Standard Time";
string daylightName = "Palmer Daylight Time";
TimeSpan offset = new TimeSpan(-4, 0, 0);
// Create custom time zone without copying DST information
TimeZoneInfo palmer = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName, 
                                                  daylightName, adjustments, true);
// Indicate whether new time zone//s adjustment rules are present
Console.WriteLine("{0} {1}has {2} adjustment rules.", 
                  palmer.StandardName, 
                  ! (string.IsNullOrEmpty(palmer.DaylightName)) ?  "(" + palmer.DaylightName + ") ": "" , 
                  palmer.GetAdjustmentRules().Length);
// Indicate whether new time zone supports DST
Console.WriteLine("{0} supports DST: {1}", palmer.StandardName, palmer.SupportsDaylightSavingTime);
// Define transition times to/from DST
let startTransition = 
    TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 4, 0, 0), 10, 2, DayOfWeek.Sunday) 
let endTransition = 
    TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1,3, 0, 0), 3, 2, DayOfWeek.Sunday)
// Define adjustment rule
let delta = TimeSpan(1, 0, 0)
let adjustment = 
    TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(DateTime(1999, 10, 1), DateTime.MaxValue.Date, delta, startTransition, endTransition)
// Create array for adjustment rules
let adjustments = [| adjustment |]
// Define other custom time zone arguments
let displayName = "(GMT-04:00) Antarctica/Palmer Time"
let standardName = "Palmer Standard Time"
let daylightName = "Palmer Daylight Time"
let offset = TimeSpan(-4, 0, 0)
// Create custom time zone without copying DST information
let palmer = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName, daylightName, adjustments, true)
// Indicate whether time zone//s adjustment rules are present
printfn $"""{palmer.StandardName} {if String.IsNullOrEmpty palmer.DaylightName then "" else "(" + palmer.DaylightName + ")"}has {palmer.GetAdjustmentRules().Length} adjustment rules."""
// Indicate whether time zone supports DST
printfn $"{palmer.StandardName} supports DST: {palmer.SupportsDaylightSavingTime}"
' Define transition times to/from DST
Dim startTransition As TimeZoneInfo.TransitionTime = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#04:00:00#, 10, 2, DayOfWeek.Sunday) 
Dim endTransition As TimeZoneInfo.TransitionTime = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#3:00:00#, 3, 2, DayOfWeek.Sunday)
' Define adjustment rule
Dim delta As TimeSpan = New TimeSpan(1, 0, 0)
Dim adjustment As TimeZoneInfo.AdjustmentRule = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(#10/01/1999#, Date.MaxValue.Date, delta, startTransition, endTransition)
' Create array for adjustment rules
Dim adjustments() As TimeZoneInfo.AdjustmentRule = {adjustment}
' Define other custom time zone arguments
Dim displayName As String = "(GMT-04:00) Antarctica/Palmer Time"
Dim standardName As String = "Palmer Standard Time"
Dim daylightName As String = "Palmer Daylight Time"
Dim offset As TimeSpan = New TimeSpan(-4, 0, 0)
Dim palmer As TimeZoneInfo = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName, daylightName, adjustments, True)
' Indicate whether new time zone's adjustment rules are present
Console.WriteLine("{0} {1}has {2} adjustment rules.", _
                  palmer.StandardName, _
                  IIf(Not String.IsNullOrEmpty(palmer.DaylightName), "(" & palmer.DaylightName & ") ", ""), _
                  palmer.GetAdjustmentRules().Length)
' Indicate whether new time zone supports DST
Console.WriteLine("{0} supports DST: {1}", palmer.StandardName, palmer.SupportsDaylightSavingTime)

Comentarios

Puede usar esta sobrecarga del TimeZoneInfo.CreateCustomTimeZone método para crear una zona horaria personalizada cuya compatibilidad con el horario de verano puede determinarse mediante condiciones en tiempo de ejecución.

En la tabla siguiente se muestra la relación entre los parámetros que se proporcionan al TimeZoneInfo.CreateCustomTimeZone método y los miembros del TimeZoneInfo objeto devueltos por la llamada al método .

Parámetro CreateCustomTimeZone Propiedad TimeZoneInfo
id Id
baseUtcOffset BaseUtcOffset
displayName DisplayName
standardDisplayName StandardName
daylightDisplayName DaylightName si disableDaylightSavingTime es false; String.Empty si disableDaylightSavingTime es true.
adjustmentRules Matriz de TimeZoneInfo.AdjustmentRule objetos devueltos por el GetAdjustmentRules método si disableDaylightSavingTime es false; una matriz vacía devuelta por el GetAdjustmentRules método si disableDaylightSavingTime es true.
disableDaylightSavingTime No SupportsDaylightSavingTime.

Normalmente, el nombre de hora estándar de la zona horaria y su identificador son los mismos. Sin embargo, la longitud del identificador de la zona horaria no debe superar los 32 caracteres. La cadena que se pasa al displayName parámetro sigue un formato bastante estándar. La primera parte del nombre para mostrar es el desplazamiento base de la zona horaria de la hora universal coordinada, que se indica mediante el acrónimo GMT (para la hora media de Greenwich), entre paréntesis. Esto va seguido de una cadena que identifica la propia zona horaria, o una o varias de las ciudades, regiones o países de la zona horaria, o ambas. Por ejemplo:

(GMT+02:00) Athens, Beirut, Istanbul, Minsk  
(GMT-02:00) Mid-Atlantic  
(GMT-07:00) Mountain Time (US & Canada)  

Las reglas de ajuste de una zona horaria se definen mediante lo siguiente:

  1. Llamar al CreateFloatingDateRule método o CreateFixedDateRule para definir las reglas de transición inicial y final para cada regla de ajuste.

  2. Llamar al CreateAdjustmentRule método para cada regla de ajuste.

  3. Asignar las reglas de ajuste a una matriz que se puede pasar como adjustmentRules parámetro.

Si disableDaylightSavingTime el parámetro es false, la operación de este método es idéntica a la TimeZoneInfo.CreateCustomTimeZone sobrecarga. Si disableDaylightSavingTime es true, el objeto devuelto no incluye reglas de ajuste y una DaylightName propiedad cuyo valor es una cadena vacía.

Consulte también

Se aplica a