Condividi tramite


TimeZoneInfo.ConvertTimeBySystemTimeZoneId Metodo

Definizione

Converte un'ora nell'ora di un fuso orario diverso in base a un identificatore del fuso orario.

Overload

ConvertTimeBySystemTimeZoneId(DateTime, String)

Converte un'ora nell'ora di un fuso orario diverso in base all'identificatore del fuso orario.

ConvertTimeBySystemTimeZoneId(DateTimeOffset, String)

Converte un'ora nell'ora di un fuso orario diverso in base all'identificatore del fuso orario.

ConvertTimeBySystemTimeZoneId(DateTime, String, String)

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

ConvertTimeBySystemTimeZoneId(DateTime, String)

Origine:
TimeZoneInfo.cs
Origine:
TimeZoneInfo.cs
Origine:
TimeZoneInfo.cs

Converte un'ora nell'ora di un fuso orario diverso in base all'identificatore del fuso orario.

public:
 static DateTime ConvertTimeBySystemTimeZoneId(DateTime dateTime, System::String ^ destinationTimeZoneId);
public static DateTime ConvertTimeBySystemTimeZoneId (DateTime dateTime, string destinationTimeZoneId);
static member ConvertTimeBySystemTimeZoneId : DateTime * string -> DateTime
Public Shared Function ConvertTimeBySystemTimeZoneId (dateTime As DateTime, destinationTimeZoneId As String) As DateTime

Parametri

dateTime
DateTime

Data e ora da convertire.

destinationTimeZoneId
String

Identificatore del fuso orario di destinazione.

Restituisce

Data e ora nel fuso orario di destinazione.

Eccezioni

destinationTimeZoneId è null.

L'identificatore del fuso orario è stato trovato, ma i dati del Registro di sistema sono danneggiati.

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

Identificatore destinationTimeZoneId non trovato nel sistema locale.

Commenti

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

Questo overload è in gran parte identico alla chiamata del ConvertTime(DateTime, TimeZoneInfo) metodo, ad eccezione del fatto che consente di specificare il fuso orario di destinazione in base al relativo identificatore anziché da un riferimento a un oggetto. Questo metodo è più utile quando è necessario convertire un'ora senza recuperare l'oggetto fuso orario corrispondente e non è necessario sapere se l'ora convertita è standard o ora legale.

Il ConvertTimeBySystemTimeZoneId(DateTime, String) metodo determina il fuso orario di origine dal valore della dateTime proprietà del Kind parametro, come illustrato nella tabella seguente.

Valore della proprietà Kind Fuso orario di origine Comportamento in caso di file di tipo Method
DateTimeKind.Local Local Converte l'ora locale nell'ora in destinationTimeZone.
DateTimeKind.Utc Utc Converte l'ora UTC (Coordinated Universal Time) nell'ora in destinationTimeZone.
DateTimeKind.Unspecified Si presuppone che sia Local. Converte l'ora locale nell'ora in destinationTimeZone.

La Kind proprietà del valore restituito viene impostata DateTime come illustrato nella tabella seguente.

Condizione Valore della proprietà Kind restituito
L'elemento destinationTimeZone è TimeZoneInfo.Utc.Id. DateTimeKind.Utc
Qualsiasi altro destinationTimeZone valore. DateTimeKind.Unspecified

Se il valore del dateTime parametro è un'ora locale ambigua, viene interpretata come ora solare. Se il dateTime parametro è un'ora locale non valida, questo metodo genera un'eccezione ArgumentException.

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.

Questo metodo recupera informazioni sul fuso orario il destinationTimeZoneId cui identificatore viene specificato dal parametro dal Registro di sistema nei sistemi Windows e dalla libreria ICU in Linux e macOS. Non può recuperare un oggetto fuso orario creato utilizzando il CreateCustomTimeZone metodo . Il destinationTimeZoneId parametro deve corrispondere esattamente all'identificatore del fuso orario di lunghezza, ma non nel caso in cui si verifichi una corrispondenza corretta, ovvero il confronto di destinationTimeZoneId con gli identificatori del fuso orario non fa distinzione tra maiuscole e minuscole.

Vedi anche

Si applica a

ConvertTimeBySystemTimeZoneId(DateTimeOffset, String)

Origine:
TimeZoneInfo.cs
Origine:
TimeZoneInfo.cs
Origine:
TimeZoneInfo.cs

Converte un'ora nell'ora di un fuso orario diverso in base all'identificatore del fuso orario.

public:
 static DateTimeOffset ConvertTimeBySystemTimeZoneId(DateTimeOffset dateTimeOffset, System::String ^ destinationTimeZoneId);
public static DateTimeOffset ConvertTimeBySystemTimeZoneId (DateTimeOffset dateTimeOffset, string destinationTimeZoneId);
static member ConvertTimeBySystemTimeZoneId : DateTimeOffset * string -> DateTimeOffset
Public Shared Function ConvertTimeBySystemTimeZoneId (dateTimeOffset As DateTimeOffset, destinationTimeZoneId As String) As DateTimeOffset

Parametri

dateTimeOffset
DateTimeOffset

Data e ora da convertire.

destinationTimeZoneId
String

Identificatore del fuso orario di destinazione.

Restituisce

Data e ora nel fuso orario di destinazione.

Eccezioni

destinationTimeZoneId è null.

L'identificatore del fuso orario è stato trovato, ma i dati del Registro di sistema sono danneggiati.

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

Identificatore destinationTimeZoneId non trovato nel sistema locale.

Commenti

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

Questo overload è identico a chiamare il ConvertTime(DateTimeOffset, TimeZoneInfo) metodo, ad eccezione del fatto che consente di specificare il fuso orario di destinazione in base al relativo identificatore anziché da un riferimento all'oggetto. Questo metodo è più utile quando è necessario convertire un'ora senza recuperare l'oggetto fuso orario corrispondente e non è necessario sapere se l'ora convertita è standard o ora legale.

Poiché il dateTimeOffset parametro rappresenta una data e un'ora insieme all'offset dell'ora rispetto all'ora UTC (Coordinated Universal Time), non può rappresentare un'ora ambigua o un'ora non valida.

Questo metodo recupera il fuso orario il destinationTimeZoneId cui identificatore è specificato dal parametro dal Registro di sistema nei sistemi Windows e dalla libreria ICU in Linux e macOS. Non può recuperare un oggetto fuso orario creato utilizzando il CreateCustomTimeZone metodo . Il destinationTimeZoneId parametro deve corrispondere esattamente all'identificatore del fuso orario di lunghezza, ma non nel caso in cui si verifichi una corrispondenza corretta, ovvero il confronto di destinationTimeZoneId con gli identificatori del fuso orario non fa distinzione tra maiuscole e minuscole.

Per convertire il dateTimeOffset valore nell'ora nel fuso orario di destinazione, il metodo tiene conto delle regole di regolazione applicate nel fuso orario di destinazione.

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

Vedi anche

Si applica a

ConvertTimeBySystemTimeZoneId(DateTime, String, String)

Origine:
TimeZoneInfo.cs
Origine:
TimeZoneInfo.cs
Origine:
TimeZoneInfo.cs

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

public:
 static DateTime ConvertTimeBySystemTimeZoneId(DateTime dateTime, System::String ^ sourceTimeZoneId, System::String ^ destinationTimeZoneId);
public static DateTime ConvertTimeBySystemTimeZoneId (DateTime dateTime, string sourceTimeZoneId, string destinationTimeZoneId);
static member ConvertTimeBySystemTimeZoneId : DateTime * string * string -> DateTime
Public Shared Function ConvertTimeBySystemTimeZoneId (dateTime As DateTime, sourceTimeZoneId As String, destinationTimeZoneId As String) As DateTime

Parametri

dateTime
DateTime

Data e ora da convertire.

sourceTimeZoneId
String

Identificatore del fuso orario di origine.

destinationTimeZoneId
String

Identificatore del fuso orario di destinazione.

Restituisce

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

Eccezioni

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

-oppure-

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

sourceTimeZoneId è null.

-oppure-

destinationTimeZoneId è null.

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

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

Identificatore sourceTimeZoneId non trovato nel sistema locale.

-oppure-

Identificatore destinationTimeZoneId non trovato nel sistema locale.

Esempio

Nell'esempio seguente viene utilizzato il TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime, String, String) metodo per visualizzare l'ora corrispondente 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"));
let currentTime = DateTime.Now
printfn "Current Times:\n"
printfn $"""Los Angeles: {TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Pacific Standard Time")}"""
printfn $"""Chicago: {TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Central Standard Time")}"""
printfn $"""New York: {TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Eastern Standard Time")}"""
printfn $"""London: {TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "GMT Standard Time")}"""
printfn $"""Moscow: {TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Russian Standard Time")}"""
printfn $"""New Delhi: {TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "India Standard Time")}"""
printfn $"""Beijing: {TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "China Standard Time")}"""
printfn $"""Tokyo: {TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Tokyo Standard Time")}"""
Dim currentTime As Date = Date.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"))

Commenti

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

Anche se è simile al TimeZoneInfo.ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) metodo , è possibile usare TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime, String, String) per specificare i fusi orari di origine e di destinazione usando i relativi identificatori anziché i relativi TimeZoneInfo oggetti. Questo metodo è più utile quando è necessario convertire un'ora senza recuperare l'oggetto fuso orario corrispondente e non è necessario sapere se l'ora convertita è standard o ora legale.

Questo metodo recupera i fusi orari i cui identificatori sono i sourceTimeZoneId parametri e destinationTimeZoneId dal Registro di sistema nei sistemi Windows e dalla libreria ICU in Linux e macOS. Non può recuperare gli oggetti del fuso orario creati usando 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 in caso di file di tipo Method
DateTimeKind.Utc TimeZoneInfo.Utc.IdÈ uguale a . Converte dateTime nell'ora del fuso orario di destinazione.
DateTimeKind.Utc Does not equal TimeZoneInfo.Utc.Id. Genera un'eccezione ArgumentException.
DateTimeKind.Local TimeZoneInfo.Local.IdÈ uguale a . Converte dateTime nell'ora del fuso orario di destinazione.
DateTimeKind.Local Does not equal TimeZoneInfo.Local.Id. Genera un'eccezione ArgumentException.
DateTimeKind.Unspecified Qualsiasi. Converte dateTime nell'ora del fuso orario di destinazione.

Poiché si basa sulle chiamate al FindSystemTimeZoneById metodo , il ConvertTimeBySystemTimeZoneId metodo esegue una ricerca senza distinzione tra maiuscole e minuscole per individuare i fusi orari corrispondenti a sourceTimeZoneId e destinationTimeZoneId.

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

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

Vedi anche

Si applica a