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.