Procedimiento para crear zonas horarias sin reglas de ajuste

Es posible que la información precisa de zona horaria que necesita una aplicación no esté presente en un sistema determinado por varias razones:

  • La zona horaria nunca se ha definido en el registro del sistema local.

  • Los datos sobre la zona horaria se han modificado o quitado del registro.

  • La zona horaria existe pero no tiene información precisa sobre los ajustes de zona horaria de un período histórico determinado.

En estos casos, puede llamar al método CreateCustomTimeZone para definir la zona horaria que necesita la aplicación. Puede usar las sobrecargas de este método para crear una zona horaria con o sin reglas de ajuste. Si la zona horaria admite el horario de verano, puede definir ajustes con reglas de ajuste fijas o flotantes. (Para consultar las definiciones de estos términos, vea la sección "Terminología de zona horaria" de Información general sobre zonas horarias).

Importante

Las zonas horarias personalizadas creadas mediante una llamada al método CreateCustomTimeZone no se agregan al registro. Sino que solo se puede acceder a ellas por medio de la referencia de objeto devuelta por la llamada de método CreateCustomTimeZone.

En este tema se muestra cómo crear una zona horaria sin reglas de ajuste. Para crear una zona horaria que admita reglas de ajuste del horario de verano, consulte Procedimiento para crear zonas horarias con reglas de ajuste.

Para crear zonas horarias sin reglas de ajuste

  1. Defina el nombre para mostrar de la zona horaria.

    El nombre para mostrar sigue un formato bastante estándar en el que el desajuste de la zona horaria con respecto a la hora universal coordinada (UTC) se incluye entre paréntesis y va seguido de una cadena que identifica la zona horaria, una o varias de las ciudades de la zona horaria, o uno o varios de los países o regiones de la zona horaria.

  2. Defina el nombre de la hora estándar de la zona horaria. Normalmente, esta cadena también se usa como identificador de la zona horaria.

  3. Si quiere usar un identificador diferente al nombre estándar de la zona horaria, defina el identificador de zona horaria.

  4. Cree una instancia de un objeto TimeSpan que defina el desajuste de la zona horaria con respecto a UTC. Las zonas horarias con horas posteriores a UTC tienen un desajuste positivo. Las zonas horarias con horas anteriores a UTC tienen un desajuste negativo.

  5. Llame al método TimeZoneInfo.CreateCustomTimeZone(String, TimeSpan, String, String) para crear una instancia de la nueva zona horaria.

Ejemplo

En el ejemplo siguiente se define una zona horaria personalizada para Mawson, Antártida, que no tiene reglas de ajuste.

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

La cadena asignada a la propiedad DisplayName sigue un formato estándar en el que el desplazamiento de la zona horaria de UTC va seguido de una descripción fácil de usar de la zona horaria.

Compilación del código

Para este ejemplo se necesita:

  • Que se importen los siguientes espacios de nombres:

    using System.Collections.Generic;
    using System.Collections.ObjectModel;
    
    Imports System.Collections.Generic
    Imports System.Collections.ObjectModel
    
    

Consulte también