Compartir por


TimeZoneInfo.CreateCustomTimeZone Método

Definición

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

Sobrecargas

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

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, reglas de 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 la 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 reglas de horario de verano.

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

Source:
TimeZoneInfo.cs
Source:
TimeZoneInfo.cs
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, reglas de 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 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 TimeZoneInfo.AdjustmentRule objetos que aumentan el desplazamiento UTC base durante un período determinado.

disableDaylightSavingTime
Boolean

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

Devoluciones

Nueva zona horaria. Si el disableDaylightSavingTime parámetro es true, el objeto devuelto no tiene datos de horario de verano.

Excepciones

El id parámetro es null.

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

O bien

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

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

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

O bien

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

O bien

Uno o varios elementos de adjustmentRules son null.

O bien

Una fecha puede tener varias reglas de ajuste aplicadas.

O bien

La suma del baseUtcOffset parámetro y el DaylightDelta valor de uno o varios objetos de la adjustmentRules matriz es mayor que 14 horas o menos 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ártica. Establece el disableDaylightSavingTime parámetro en la llamada al TimeZoneInfo.CreateCustomTimeZone método en true. 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 se puede determinar mediante condiciones en tiempo de ejecución.

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 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 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)

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

  1. CreateFloatingDateRule Llamar al 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 parámetro adjustmentRules .

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
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 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

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 nueva hora estándar de la zona horaria.

Devoluciones

Nueva zona horaria.

Excepciones

El id parámetro es null.

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

O bien

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

El baseUtcOffset parámetro es mayor que 14 horas o menos 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ártica. 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 proporcionados 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 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)

Consulte también

Se aplica a

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

Source:
TimeZoneInfo.cs
Source:
TimeZoneInfo.cs
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 reglas de 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

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 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 utc base durante un período determinado.

Devoluciones

Objeto TimeZoneInfo que representa la nueva zona horaria.

Excepciones

El id parámetro es null.

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

O bien

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

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

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

O bien

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

O bien

Uno o varios elementos de adjustmentRules son null.

O bien

Una fecha puede tener varias reglas de ajuste aplicadas.

O bien

La suma del baseUtcOffset parámetro y el DaylightDelta valor de uno o varios objetos de la adjustmentRules matriz es mayor que 14 horas o menos 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ártica. A continuación, convierte la hora local en 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 método es adecuada para crear una zona horaria que admita el horario de TimeZoneInfo.CreateCustomTimeZone 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 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 haciendo lo siguiente:

  1. CreateFloatingDateRule Llamar al 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 parámetro adjustmentRules .

Consulte también

Se aplica a