Share via


Cómo: Crear zonas horarias sin reglas de ajuste

Actualización: noviembre 2007

La información precisa sobre zonas horarias que necesita una aplicación podría no encontrarse en un sistema concreto por varios motivos:

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

  • Se han modificado los datos sobre la zona horaria o se han quitado del Registro.

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

En estos casos, puede llamar al método CreateCustomTimeZone para definir la zona horaria que su aplicación necesita. Puede utilizar 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 los ajustes con reglas de ajuste fijas o flotantes. (Para obtener las definiciones de estos términos, vea la sección "Terminología de zonas horarias" en Información general sobre zonas horarias).

Nota importante:

Las zonas horarias personalizadas creadas con una llamada al método CreateCustomTimeZone no se agregan al Registro. Sólo se puede tener acceso a ellas mediante la referencia de objeto devuelta por la llamada al 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 las reglas de ajuste del horario de verano, vea Cómo: Crear zonas horarias con reglas de ajuste.

Para crear una zona horaria sin reglas de ajuste

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

    El nombre para mostrar sigue un formato estándar: la diferencia de la zona horaria respecto a la hora universal coordinada (UTC) se incluye entre paréntesis y le sigue una cadena que identifica la zona horaria, una o varias ciudades de la zona horaria, o uno o varios 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 utiliza como identificador de la zona horaria.

  3. Si desea utilizar un identificador diferente que el nombre estándar de la zona horaria, defina el identificador de zona horaria.

  4. Cree instancias de un objeto TimeSpan que define la diferencia de la zona horaria respecto a la hora UTC. Las zonas con horas posteriores a la hora UTC tienen una diferencia positiva. Las zonas con horas anteriores a la hora UTC tienen una diferencia negativa.

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

Ejemplo

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

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

La cadena asignada a la propiedad DisplayName sigue un formato estándar en el que la diferencia respecto a la hora UTC va seguida de una descripción breve y fácil de comprender de la zona horaria.

Compilar el código

Para este ejemplo se necesita:

  • Que se agregue al proyecto una referencia a System.Core.dll.

  • Que se importen los siguientes espacios de nombres:

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

Vea también

Tareas

Cómo: Crear zonas horarias con reglas de ajuste

Conceptos

Información general sobre zonas horarias

Otros recursos

Horas y zonas horarias