Condividi tramite


Procedura: creare fusi orari senza regole di regolazione

Aggiornamento: novembre 2007

Le informazioni precise del fuso orario richieste da un'applicazione possono non essere presenti in un determinato sistema per molte ragioni:

  • Il fuso orario non è mai stato definito nel Registro di sistema locale.

  • I dati sul fuso orario sono stati modificati o rimossi dal Registro di sistema.

  • Il fuso orario esiste ma non ha informazioni accurate sulle regolazioni del fuso orario per un determinato periodo storico.

In questi casi, è possibile chiamare il metodo CreateCustomTimeZone per definire il fuso orario richiesto dall'applicazione. È possibile utilizzare gli overload di questo metodo per creare un fuso orario con o senza regole di regolazione. Se il fuso orario supporta l'ora legale, è possibile definire le regolazioni con regole di regolazione fisse o mobili. Per le definizioni di questi termini, vedere la sezione "Terminologia relativa al fuso orario" in Panoramica sul fuso orario.

Nota importante:

I fusi orari personalizzati creati chiamando il metodo CreateCustomTimeZone non vengono aggiunti al Registro di sistema, ma è possibile accedervi solo tramite il riferimento all'oggetto restituito dalla chiamata al metodo CreateCustomTimeZone.

In questo argomento viene illustrato come creare un fuso orario senza regole di regolazione. Per creare un fuso orario che supporti le regole di regolazione dell'ora legale, vedere Procedura: creare fusi orari con regole di regolazione.

Per creare un fuso orario senza regole di regolazione

  1. Definire il nome visualizzato del fuso orario.

    Il nome visualizzato segue un formato quasi standard in cui l'offset del fuso orario dall'ora UTC (Coordinated Universal Time) viene racchiuso tra parentesi e seguito da una stringa che identifica il fuso orario, una o più città del fuso orario o uno o più paesi o regioni del fuso orario.

  2. Definire il nome dell'ora solare del fuso orario. In genere questa stringa viene utilizzata anche come identificatore del fuso orario.

  3. Se si desidera utilizzare un identificatore diverso dal nome standard del fuso orario, definire l'identificatore del fuso orario.

  4. Creare un'istanza di un oggetto TimeSpan che definisce l'offset del fuso orario dall'ora UTC. I fusi orari con ore in avanti rispetto all'ora UTC hanno un offset positivo. I fusi orari con ore indietro rispetto all'ora UTC hanno un offset negativo.

  5. Chiamare il metodo TimeZoneInfo.CreateCustomTimeZone(String, TimeSpan, String, String) per creare un'istanza del nuovo fuso orario.

Esempio

Nell'esempio seguente viene definito un fuso orario personalizzato per Mawson, Antartide senza regole di regolazione.

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 stringa assegnata alla proprietà DisplayName segue un formato standard in cui l'offset del fuso orario dall'ora UTC è seguito da una semplice descrizione del fuso orario.

Compilazione del codice

Per questo esempio è necessario:

  • Aggiungere un riferimento a System.Core.dll al progetto.

  • Importare gli spazi dei nomi seguenti:

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

Vedere anche

Attività

Procedura: creare fusi orari con regole di regolazione

Concetti

Panoramica sul fuso orario

Altre risorse

Ora e fusi orari