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.ConvertTime (DateTime, TimeZoneInfo, TimeZoneInfo)

 

Data di pubblicazione: ottobre 2016

Converte un'ora da un fuso orario a un altro.

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

public static DateTime ConvertTime(
	DateTime dateTime,
	TimeZoneInfo sourceTimeZone,
	TimeZoneInfo destinationTimeZone
)

Parametri

dateTime
Type: System.DateTime

Data e ora da convertire.

sourceTimeZone
Type: System.TimeZoneInfo

Fuso orario di dateTime.

destinationTimeZone
Type: System.TimeZoneInfo

Fuso orario nel quale convertire dateTime.

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 è DateTimeKind.Local, ma il parametro sourceTimeZone non è uguale a DateTimeKind.Local. Per altre informazioni, vedere la sezione Osservazioni.

-oppure-

La proprietà Kind del parametro dateTime è DateTimeKind.Utc, ma il parametro sourceTimeZone non è uguale a TimeZoneInfo.Utc.

-oppure-

Il parametro dateTime rappresenta un'ora non valida (ovvero rappresenta un'ora che non esiste a causa delle regole di rettifica del fuso orario).

ArgumentNullException

Il valore del parametro sourceTimeZone è null.

-oppure-

Il valore del parametro destinationTimeZone è null.

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

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

Valore DateTime. Kind

valore sourceTimeZone

Comportamento del metodo

DateTimeKind.Utc

È uguale a TimeZoneInfo.Utc.

Converte dateTime all'ora del fuso orario di destinazione.

DateTimeKind.Utc

Non è uguale a TimeZoneInfo.Utc.

Genera un ArgumentException.

DateTimeKind.Local

È uguale a TimeZoneInfo.Local.

Converte dateTime all'ora del fuso orario di destinazione.

DateTimeKind.Local

Non è uguale a TimeZoneInfo.Local.

Genera un ArgumentException.

DateTimeKind.Unspecified

Qualsiasi.

Converte dateTime all'ora del fuso orario di destinazione.

È anche possibile convertire a o da Coordinated Universal Time (UTC) chiamando il ConvertTimeFromUtc e ConvertTimeToUtc metodi.

Il Kind proprietà dell'oggetto restituito DateTime valore viene impostato come illustrato nella tabella seguente.

Condizione

Ha restituito il valore della proprietà Kind

Il valore dell'argomento destinationTimeZone è TimeZoneInfo.Utc.

DateTimeKind.Utc

Il valore dell'argomento destinationTimeZone è TimeZoneInfo.Local.

DateTimeKind.Local

Tutti gli altri data e i valori di ora, fuso orario di origine e fusi orari di destinazione.

DateTimeKind.Unspecified

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.

Se la conversione di dateTime restituisce un valore di data e ora precedente a DateTime.MinValue o successivo a DateTime.MaxValue, questo metodo restituisce DateTime.MinValue o DateTime.MaxValue, rispettivamente.

Il ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) metodo genera un ArgumentException eccezione se il DateTime.Kind proprietà del dateTime argomento DateTimeKind.Local ma la sourceTimeZone argomento non è TimeZoneInfo.Local. Per determinare se il fuso orario di origine è il fuso orario locale o universal fuso orario, il metodo verifica l'uguaglianza dei riferimenti anziché eseguire il test di uguaglianza con il Equals(TimeZoneInfo) metodo. Si noti che TimeZoneInfo gli oggetti che rappresentano il fuso orario locale e che vengono recuperati chiamando il FindSystemTimeZoneById (metodo) non dispone dei riferimenti con TimeZoneInfo.Local. Inoltre, TimeZoneInfo gli oggetti che rappresentano il locale o un fuso orario universal e che vengono recuperati tramite l'iterazione della raccolta restituita dal GetSystemTimeZones (metodo) non dispone dei riferimenti con TimeZoneInfo.Local o TimeZoneInfo.Utc. In alternativa, è possibile chiamare il ConvertTimeBySystemTimeZoneId(DateTime, String, String) metodo.

Note per i chiamanti:

In Windows XP sistemi, questo metodo si applica solo alla regola di rettifica corrente quando si esegue la conversione se dateTime viene considerata come un'ora locale, se sourceTimeZone è TimeZoneInfo.Local, o se destinationTimeZone è TimeZoneInfo.Local. Di conseguenza, il metodo non può in modo accurato convertire volte per periodi precedenti la regola di rettifica corrente. Per ulteriori informazioni, vedere la sezione Note per i chiamanti nel Local proprietà.

Nell'esempio seguente viene illustrato l'utilizzo del ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) metodo per la conversione dall'ora solare Hawaii all'ora locale.

DateTime hwTime = new DateTime(2007, 02, 01, 08, 00, 00);
try
{
   TimeZoneInfo hwZone = TimeZoneInfo.FindSystemTimeZoneById("Hawaiian Standard Time");
   Console.WriteLine("{0} {1} is {2} local time.", 
           hwTime, 
           hwZone.IsDaylightSavingTime(hwTime) ? hwZone.DaylightName : hwZone.StandardName, 
           TimeZoneInfo.ConvertTime(hwTime, hwZone, TimeZoneInfo.Local));
}
catch (TimeZoneNotFoundException)
{
   Console.WriteLine("The registry does not define the Hawaiian Standard Time zone.");
}                           
catch (InvalidTimeZoneException)
{
   Console.WriteLine("Registry data on the Hawaiian Standard Time zone has been corrupted.");
}

Universal Windows Platform
Disponibile da 10
.NET Framework
Disponibile da 3.5
Torna all'inizio
Mostra: