Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo TimeZoneInfo.ConvertTimeBySystemTimeZoneId (DateTime, String, String)

 

Data di pubblicazione: ottobre 2016

Converte un'ora da un fuso orario a un altro in base agli identificatori dei fusi orari.

Spazio dei nomi:   System
Assembly:  mscorlib (in mscorlib.dll)

public static DateTime ConvertTimeBySystemTimeZoneId(
	DateTime dateTime,
	string sourceTimeZoneId,
	string destinationTimeZoneId
)

Parametri

dateTime
Type: System.DateTime

Data e ora da convertire.

sourceTimeZoneId
Type: System.String

Identificatore del fuso orario di origine.

destinationTimeZoneId
Type: System.String

Identificatore del fuso orario di destinazione.

Valore restituito

Type: System.DateTime

Data e ora nel fuso orario di destinazione corrispondente al parametro dateTime nel fuso orario di origine.

Exception Condition
ArgumentException

La proprietà Kind del parametro dateTime non corrisponde al fuso orario di origine.

-oppure-

dateTime è un'ora non valida nel fuso orario di origine.

ArgumentNullException

sourceTimeZoneId è null.

-oppure-

destinationTimeZoneId è null.

InvalidTimeZoneException

Gli identificatori del fuso orario sono stati trovati, ma i dati del Registro di sistema sono danneggiati.

SecurityException

Il processo non ha le autorizzazioni necessarie per leggere dalla chiave del Registro di sistema che contiene le informazioni sul fuso orario.

TimeZoneNotFoundException

Identificatore sourceTimeZoneId non trovato nel sistema locale.

-oppure-

Identificatore destinationTimeZoneId non trovato nel sistema locale.

SecurityException

L'utente non ha le autorizzazioni necessarie per leggere le chiavi del Registro di sistema che contengono i dati del fuso orario.

Quando si esegue la conversione, il ConvertTimeBySystemTimeZoneId metodo si applica a tutte le regole di regolazione attiva nel destinationTimeZoneId fuso orario.

Sebbene sia simile al TimeZoneInfo.ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) (metodo), è possibile utilizzare TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime, String, String) per specificare il fuso orario di origine e di destinazione utilizzando i rispettivi identificatori anziché i relativi TimeZoneInfo oggetti. Questo metodo è particolarmente utile quando è necessario convertire un'ora senza recuperare l'oggetto fuso orario che corrisponde a tale e non è necessario sapere se l'ora convertita standard o l'ora legale.

Questo metodo recupera i fusi orari con gli identificatori sono il sourceTimeZoneId e destinationTimeZoneId parametri dal Registro di sistema. Non è possibile recuperare gli oggetti fuso orario che vengono creati utilizzando il CreateCustomTimeZone metodo.

Il valore della Kind proprietà del dateTime parametro deve corrispondere al sourceTimeZoneId parametro, come illustrato nella tabella seguente.

Valore DateTime. Kind

valore sourceTimeZone

Comportamento del metodo

DateTimeKind.Utc

È uguale a TimeZoneInfo.Utc.Id.

Converte dateTime all'ora del fuso orario di destinazione.

DateTimeKind.Utc

Non è uguale a TimeZoneInfo.Utc.Id.

Genera un ArgumentException.

DateTimeKind.Local

È uguale a TimeZoneInfo.Local.Id.

Converte dateTime all'ora del fuso orario di destinazione.

DateTimeKind.Local

Non è uguale a TimeZoneInfo.Local.Id.

Genera un ArgumentException.

DateTimeKind.Unspecified

Qualsiasi.

Converte dateTime all'ora del fuso orario di destinazione.

Perché si basa sulle chiamate per il FindSystemTimeZoneById (metodo), il ConvertTimeBySystemTimeZoneId metodo esegue una ricerca tra maiuscole e minuscole per individuare i fusi orari che corrispondono a sourceTimeZoneId e destinationTimeZoneId.

Se il valore di dateTime parametro è un'ora ambigua nel fuso orario di origine, viene interpretato come ora solare. Se il dateTime parametro non è un'ora non valida nel fuso orario di origine, questo metodo genera un ArgumentException.

Il Kind proprietà dell'oggetto restituito DateTime è impostato su DateTimeKind.Unspecified a meno che il fuso orario di destinazione sia Coordinated Universal Time (UTC), nel qual caso è impostata su DateTimeKind.Utc.

L'esempio seguente usa il TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime, String, String) metodo per visualizzare l'ora che corrisponde all'ora di sistema locale in otto città del mondo.

DateTime currentTime = DateTime.Now;
Console.WriteLine("Current Times:");
Console.WriteLine();
Console.WriteLine("Los Angeles: {0}", 
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Pacific Standard Time"));
Console.WriteLine("Chicago: {0}", 
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Central Standard Time"));
Console.WriteLine("New York: {0}", 
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Eastern Standard Time"));
Console.WriteLine("London: {0}", 
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "GMT Standard Time"));
Console.WriteLine("Moscow: {0}", 
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Russian Standard Time"));
Console.WriteLine("New Delhi: {0}", 
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "India Standard Time"));
Console.WriteLine("Beijing: {0}", 
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "China Standard Time"));
Console.WriteLine("Tokyo: {0}", 
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Tokyo Standard Time"));

.NET Framework
Disponibile da 3.5
Torna all'inizio
Mostra: