Condividi tramite


TimeZoneInfo.ConvertTimeFromUtc(DateTime, TimeZoneInfo) Metodo

Definizione

Converte l'ora UTC (Coordinated Universal Time) nell'ora di un fuso orario specificato.

public:
 static DateTime ConvertTimeFromUtc(DateTime dateTime, TimeZoneInfo ^ destinationTimeZone);
public static DateTime ConvertTimeFromUtc (DateTime dateTime, TimeZoneInfo destinationTimeZone);
static member ConvertTimeFromUtc : DateTime * TimeZoneInfo -> DateTime
Public Shared Function ConvertTimeFromUtc (dateTime As DateTime, destinationTimeZone As TimeZoneInfo) As DateTime

Parametri

dateTime
DateTime

Ora UTC (Coordinated Universal Time).

destinationTimeZone
TimeZoneInfo

Fuso orario nel quale convertire dateTime.

Restituisce

Data e ora nel fuso orario di destinazione. La proprietà Kind è Utc se destinationTimeZone è Utc; in caso contrario, la proprietà Kind è Unspecified.

Eccezioni

La proprietà Kind di dateTime è Local.

destinationTimeZone è null.

Esempio

Nell'esempio seguente viene convertito l'ora UTC (Coordinated Universal Time) in Central Time.

DateTime timeUtc = DateTime.UtcNow;
try
{
   TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
   DateTime cstTime = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, cstZone);
   Console.WriteLine("The date and time are {0} {1}.", 
                     cstTime, 
                     cstZone.IsDaylightSavingTime(cstTime) ?
                             cstZone.DaylightName : cstZone.StandardName);
}
catch (TimeZoneNotFoundException)
{
   Console.WriteLine("The registry does not define the Central Standard Time zone.");
}                           
catch (InvalidTimeZoneException)
{
   Console.WriteLine("Registry data on the Central Standard Time zone has been corrupted.");
}
let timeUtc = DateTime.UtcNow
try
    let cstZone = TimeZoneInfo.FindSystemTimeZoneById "Central Standard Time"
    let cstTime = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, cstZone)
    printfn $"The date and time are {cstTime} {if cstZone.IsDaylightSavingTime cstTime then cstZone.DaylightName else cstZone.StandardName}."
with
| :? TimeZoneNotFoundException ->
    printfn "The registry does not define the Central Standard Time zone."
| :? InvalidTimeZoneException ->
    printfn "Registry data on the Central Standard Time zone has been corrupted."
Dim timeUtc As Date = Date.UtcNow
Try
   Dim cstZone As TimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time")
   Dim cstTime As Date = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, cstZone)
   Console.WriteLine("The date and time are {0} {1}.", _
                     cstTime, _
                     IIf(cstZone.IsDaylightSavingTime(cstTime), _
                         cstZone.DaylightName, cstZone.StandardName))
Catch e As TimeZoneNotFoundException
   Console.WriteLine("The registry does not define the Central Standard Time zone.")
Catch e As InvalidTimeZoneException
   Console.WriteLine("Registry data on the Central Standard Time zone has been corrupted.")
End Try

Commenti

Quando si esegue la conversione, il ConvertTimeFromUtc metodo applica le regole di regolazione nel destinationTimeZone fuso orario.

Il comportamento preciso di questo metodo dipende dal valore della Kind proprietà del dateTime parametro, come illustrato nella tabella seguente.

Proprietà DateTime.Kind Conversione
DateTimeKind.Local Genera un ArgumentExceptionoggetto .
DateTimeKind.Unspecified o DateTimeKind.Utc Converte da Coordinated Universal Time (UTC).

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

Si applica a

Vedi anche