TimeZoneInfo.ConvertTimeBySystemTimeZoneId Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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.
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.