Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto manualmente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Procedura: creare fusi orari senza regole di regolazione

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

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


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.

L'esempio presenta i seguenti requisiti:

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

  • Importare gli spazi dei nomi seguenti:

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

Aggiunte alla community

AGGIUNGI
Mostra:
© 2015 Microsoft