TimeZoneInfo.CreateCustomTimeZone 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í.
Define una zona horaria que no se encuentra en el equipo local.
Sobrecargas
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. |
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)
- Source:
- TimeZoneInfo.cs
- Source:
- TimeZoneInfo.cs
- Source:
- TimeZoneInfo.cs
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
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 true
en . 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:
Llamar al CreateFloatingDateRule método o CreateFixedDateRule para definir las reglas de transición inicial y final para cada regla de ajuste.
Llamar al CreateAdjustmentRule método para cada regla de ajuste.
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
CreateCustomTimeZone(String, TimeSpan, String, String)
- Source:
- TimeZoneInfo.cs
- Source:
- TimeZoneInfo.cs
- Source:
- TimeZoneInfo.cs
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
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[])
- Source:
- TimeZoneInfo.cs
- Source:
- TimeZoneInfo.cs
- Source:
- TimeZoneInfo.cs
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
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 proporcionados 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 pasada 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 durante toda la vida de la zona horaria y existe independientemente de las reglas de ajuste concretas. Para reflejar una zona horaria que ha cambiado su desplazamiento desde UTC, debe crear un nuevo objeto de zona horaria.
Las reglas de ajuste de una zona horaria se definen haciendo lo siguiente:
CreateFloatingDateRule Llamar al método o CreateFixedDateRule para definir el tiempo de transición inicial y final para cada regla de ajuste.
Llamar al CreateAdjustmentRule método para cada regla de ajuste.
Asignar las reglas de ajuste a una matriz que se puede pasar como
adjustmentRules
parámetro.