TimeZoneInfo.ConvertTimeBySystemTimeZoneId Metodo

Definizione

Converte un'ora nell'ora di un fuso orario diverso in base a un identificatore del fuso orario.Converts a time to the time in another time zone based on a time zone identifier.

Overload

ConvertTimeBySystemTimeZoneId(DateTime, String)

Converte un'ora nell'ora di un fuso orario diverso in base all'identificatore del fuso orario.Converts a time to the time in another time zone based on the time zone's identifier.

ConvertTimeBySystemTimeZoneId(DateTimeOffset, String)

Converte un'ora nell'ora di un fuso orario diverso in base all'identificatore del fuso orario.Converts a time to the time in another time zone based on the time zone's identifier.

ConvertTimeBySystemTimeZoneId(DateTime, String, String)

Converte un'ora da un fuso orario a un altro in base agli identificatori dei fusi orari.Converts a time from one time zone to another based on time zone identifiers.

ConvertTimeBySystemTimeZoneId(DateTime, String)

Converte un'ora nell'ora di un fuso orario diverso in base all'identificatore del fuso orario.Converts a time to the time in another time zone based on the time zone's identifier.

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.The date and time to convert.

destinationTimeZoneId
String

Identificatore del fuso orario di destinazione.The identifier of the destination time zone.

Restituisce

DateTime

Data e ora nel fuso orario di destinazione.The date and time in the destination time zone.

Eccezioni

destinationTimeZoneId è null.destinationTimeZoneId is null.

L'identificatore del fuso orario è stato trovato, ma i dati del Registro di sistema sono danneggiati.The time zone identifier was found, but the registry data is corrupted.

Il processo non ha le autorizzazioni necessarie per leggere dalla chiave del Registro di sistema che contiene le informazioni sul fuso orario.The process does not have the permissions required to read from the registry key that contains the time zone information.

Identificatore destinationTimeZoneId non trovato nel sistema locale.The destinationTimeZoneId identifier was not found on the local system.

Commenti

Quando si esegue la conversione, il ConvertTimeBySystemTimeZoneId metodo applica eventuali regole di rettifica attive nel destinationTimeZoneId fuso orario.When performing the conversion, the ConvertTimeBySystemTimeZoneId method applies any adjustment rules in effect in the destinationTimeZoneId time zone.

Questo overload è in gran parte identico alla chiamata al ConvertTime(DateTime, TimeZoneInfo) metodo, con la differenza che consente di specificare il fuso orario di destinazione in base al relativo identificatore anziché a un riferimento a un oggetto.This overload is largely identical to calling the ConvertTime(DateTime, TimeZoneInfo) method, except that it allows you to specify the destination time zone by its identifier rather than by an object reference. Questo metodo è particolarmente 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.This method is most useful when you must convert a time without retrieving the time zone object that corresponds to it and you do not need to know whether the converted time is standard or daylight saving time.

Il ConvertTimeBySystemTimeZoneId(DateTime, String) metodo determina il fuso orario di origine dal valore della dateTime proprietà del parametro Kind , come illustrato nella tabella seguente.The ConvertTimeBySystemTimeZoneId(DateTime, String) method determines the source time zone from the value of the dateTime parameter's Kind property, as the following table shows.

Valore della proprietà KindKind property value Fuso orario di origineSource time zone Comportamento in caso di file di tipo MethodMethod behavior
DateTimeKind.Local Local Converte l'ora locale nell'ora di destinationTimeZone .Converts the local time to the time in destinationTimeZone.
DateTimeKind.Utc Utc Converte l'ora UTC (Coordinated Universal Time) nell'ora di destinationTimeZone .Converts Coordinated Universal Time (UTC) to the time in destinationTimeZone.
DateTimeKind.Unspecified Si presuppone che sia Local .Assumed to be Local. Converte l'ora locale nell'ora di destinationTimeZone .Converts the local time to the time in destinationTimeZone.

La Kind proprietà del valore restituito DateTime è impostata come illustrato nella tabella seguente.The Kind property of the returned DateTime value is set as shown in the following table.

CondizioneCondition Valore della proprietà Kind restituitoReturned Kind property value
L'elemento destinationTimeZone è TimeZoneInfo.Utc.Id.The destinationTimeZone is TimeZoneInfo.Utc.Id. DateTimeKind.Utc
Qualsiasi altro destinationTimeZone valore.Any other destinationTimeZone value. DateTimeKind.Unspecified

Se il valore del dateTime parametro è un'ora locale ambigua, viene interpretato come ora solare.If the value of the dateTime parameter is an ambiguous local time, it is interpreted as a standard time. Se il dateTime parametro è un'ora locale non valida, questo metodo genera un'eccezione ArgumentException .If the dateTime parameter is an invalid local time, this method throws an ArgumentException.

Se la conversione di dateTime restituisce un valore di data e ora precedente DateTime.MinValue o successiva a DateTime.MaxValue , questo metodo restituisce DateTime.MinValue DateTime.MaxValue rispettivamente o.If the conversion of dateTime results in a date and time value that is earlier than DateTime.MinValue or later than DateTime.MaxValue, this method returns DateTime.MinValue or DateTime.MaxValue, respectively.

Questo metodo recupera le informazioni sul fuso orario il cui identificatore viene specificato dal destinationTimeZoneId parametro dal registro di sistema nei sistemi Windows e dalla libreria di ICU in Linux e MacOS.This method retrieves information on the time zone whose identifier is specified by the destinationTimeZoneId parameter from the registry on Windows systems and from the ICU Library on Linux and macOS. Non è possibile recuperare un oggetto fuso orario creato con il CreateCustomTimeZone metodo.It cannot retrieve a time zone object that is created using the CreateCustomTimeZone method. Il destinationTimeZoneId parametro deve corrispondere esattamente alla lunghezza dell'identificatore del fuso orario, ma non nel caso in cui si verifichi una corrispondenza corretta; ovvero, il confronto tra gli destinationTimeZoneId identificatori dei fusi orari non fa distinzione tra maiuscole e minuscole.The destinationTimeZoneId parameter must correspond exactly to the time zone's identifier in length, but not in case, for a successful match to occur; that is, the comparison of destinationTimeZoneId with time zone identifiers is case-insensitive.

Si applica a

ConvertTimeBySystemTimeZoneId(DateTimeOffset, String)

Converte un'ora nell'ora di un fuso orario diverso in base all'identificatore del fuso orario.Converts a time to the time in another time zone based on the time zone's identifier.

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.The date and time to convert.

destinationTimeZoneId
String

Identificatore del fuso orario di destinazione.The identifier of the destination time zone.

Restituisce

DateTimeOffset

Data e ora nel fuso orario di destinazione.The date and time in the destination time zone.

Eccezioni

destinationTimeZoneId è null.destinationTimeZoneId is null.

L'identificatore del fuso orario è stato trovato, ma i dati del Registro di sistema sono danneggiati.The time zone identifier was found but the registry data is corrupted.

Il processo non ha le autorizzazioni necessarie per leggere dalla chiave del Registro di sistema che contiene le informazioni sul fuso orario.The process does not have the permissions required to read from the registry key that contains the time zone information.

Identificatore destinationTimeZoneId non trovato nel sistema locale.The destinationTimeZoneId identifier was not found on the local system.

Commenti

Quando si esegue la conversione, il ConvertTimeBySystemTimeZoneId metodo applica eventuali regole di rettifica attive nel destinationTimeZoneId fuso orario.When performing the conversion, the ConvertTimeBySystemTimeZoneId method applies any adjustment rules in effect in the destinationTimeZoneId time zone.

Questo overload è identico alla chiamata al ConvertTime(DateTimeOffset, TimeZoneInfo) metodo, con la differenza che consente di specificare il fuso orario di destinazione in base al relativo identificatore anziché a un riferimento a un oggetto.This overload is identical to calling the ConvertTime(DateTimeOffset, TimeZoneInfo) method, except that it allows you to specify the destination time zone by its identifier rather than by an object reference. Questo metodo è particolarmente 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.This method is most useful when you must convert a time without retrieving the time zone object that corresponds to it and you do not need to know whether the converted time is standard or daylight saving time.

Poiché il dateTimeOffset parametro rappresenta una data e un'ora con l'offset di quell'ora rispetto all'ora UTC (Coordinated Universal Time), non può rappresentare un'ora ambigua o un'ora non valida.Because the dateTimeOffset parameter represents a date and time together with that time's offset from Coordinated Universal Time (UTC), it cannot represent either an ambiguous time or an invalid time.

Questo metodo recupera il fuso orario il cui identificatore viene specificato dal destinationTimeZoneId parametro dal registro di sistema nei sistemi Windows e dalla libreria ICU in Linux e MacOS.This method retrieves the time zone whose identifier is specified by the destinationTimeZoneId parameter from the registry on Windows systems and from the ICU Library on Linux and macOS. Non è possibile recuperare un oggetto fuso orario creato con il CreateCustomTimeZone metodo.It cannot retrieve a time zone object that is created using the CreateCustomTimeZone method. Il destinationTimeZoneId parametro deve corrispondere esattamente alla lunghezza dell'identificatore del fuso orario, ma non nel caso in cui si verifichi una corrispondenza corretta; ovvero, il confronto tra gli destinationTimeZoneId identificatori dei fusi orari non fa distinzione tra maiuscole e minuscole.The destinationTimeZoneId parameter must correspond exactly to the time zone's identifier in length, but not in case, for a successful match to occur; that is, the comparison of destinationTimeZoneId with time zone identifiers is case-insensitive.

Per la conversione del dateTimeOffset valore nell'ora nel fuso orario di destinazione, il metodo prende in considerazione le regole di rettifica attive nel fuso orario di destinazione.In converting the dateTimeOffset value to the time in the destination time zone, the method takes into account any adjustment rules in effect in the destination time zone.

Se la conversione di dateTimeOffset restituisce un valore di data e ora precedente DateTimeOffset.MinValue o successiva a DateTimeOffset.MaxValue , questo metodo restituisce DateTimeOffset.MinValue DateTimeOffset.MaxValue rispettivamente o.If the conversion of dateTimeOffset results in a date and time value that is earlier than DateTimeOffset.MinValue or later than DateTimeOffset.MaxValue, this method returns DateTimeOffset.MinValue or DateTimeOffset.MaxValue, respectively.

Si applica a

ConvertTimeBySystemTimeZoneId(DateTime, String, String)

Converte un'ora da un fuso orario a un altro in base agli identificatori dei fusi orari.Converts a time from one time zone to another based on time zone identifiers.

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.The date and time to convert.

sourceTimeZoneId
String

Identificatore del fuso orario di origine.The identifier of the source time zone.

destinationTimeZoneId
String

Identificatore del fuso orario di destinazione.The identifier of the destination time zone.

Restituisce

DateTime

Data e ora nel fuso orario di destinazione corrispondente al parametro dateTime nel fuso orario di origine.The date and time in the destination time zone that corresponds to the dateTime parameter in the source time zone.

Eccezioni

La proprietà Kind del parametro dateTime non corrisponde al fuso orario di origine.The Kind property of the dateTime parameter does not correspond to the source time zone.

-oppure--or- dateTime è un'ora non valida nel fuso orario di origine.dateTime is an invalid time in the source time zone.

sourceTimeZoneId è null.sourceTimeZoneId is null.

-oppure--or- destinationTimeZoneId è null.destinationTimeZoneId is null.

Gli identificatori del fuso orario sono stati trovati, ma i dati del Registro di sistema sono danneggiati.The time zone identifiers were found, but the registry data is corrupted.

L'utente non ha le autorizzazioni necessarie per leggere le chiavi del Registro di sistema che contengono i dati del fuso orario.The user does not have the permissions required to read from the registry keys that hold time zone data.

Identificatore sourceTimeZoneId non trovato nel sistema locale.The sourceTimeZoneId identifier was not found on the local system.

-oppure--or- Identificatore destinationTimeZoneId non trovato nel sistema locale.The destinationTimeZoneId identifier was not found on the local system.

Esempio

Nell'esempio seguente viene usato il TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime, String, String) metodo per visualizzare l'ora che corrisponde all'ora di sistema locale in otto città del mondo.The following example uses the TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime, String, String) method to display the time that corresponds to the local system time in eight cities of the world.

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"));
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 eventuali regole di rettifica attive nel destinationTimeZoneId fuso orario.When performing the conversion, the ConvertTimeBySystemTimeZoneId method applies any adjustment rules in effect in the destinationTimeZoneId time zone.

Sebbene sia simile al TimeZoneInfo.ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) metodo, è possibile utilizzare TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime, String, String) per specificare i fusi orari di origine e di destinazione utilizzando i relativi identificatori invece dei rispettivi TimeZoneInfo oggetti.Although it is similar to the TimeZoneInfo.ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) method, you can use TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime, String, String) to specify the source and destination time zones using their identifiers instead of their TimeZoneInfo objects. Questo metodo è particolarmente 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.This method is most useful when you must convert a time without retrieving the time zone object that corresponds to it and you do not need to know whether the converted time is standard or daylight saving time.

Questo metodo recupera i fusi orari i cui identificatori sono sourceTimeZoneId i destinationTimeZoneId parametri e del registro di sistema nei sistemi Windows e dalla libreria di ICU in Linux e MacOS.This method retrieves the time zones whose identifiers are the sourceTimeZoneId and destinationTimeZoneId parameters from the registry on Windows systems and from the ICU Library on Linux and macOS. Non è in grado di recuperare gli oggetti fusi orari creati utilizzando il CreateCustomTimeZone metodo.It cannot retrieve time zone objects that are created using the CreateCustomTimeZone method.

Il valore della Kind proprietà del dateTime parametro deve corrispondere al sourceTimeZoneId parametro, come illustrato nella tabella seguente.The value of the Kind property of the dateTime parameter must correspond to the sourceTimeZoneId parameter, as the following table shows.

Valore DateTime. KindDateTime.Kind value Valore sourceTimeZonesourceTimeZone value Comportamento in caso di file di tipo MethodMethod behavior
DateTimeKind.Utc È uguale a TimeZoneInfo.Utc.Id .Equals TimeZoneInfo.Utc.Id. Esegue dateTime la conversione nell'ora del fuso orario di destinazione.Converts dateTime to the destination time zone's time.
DateTimeKind.Utc Does not equal TimeZoneInfo.Utc.Id.Does not equal TimeZoneInfo.Utc.Id. Genera un'eccezione ArgumentException .Throws an ArgumentException.
DateTimeKind.Local È uguale a TimeZoneInfo.Local.Id .Equals TimeZoneInfo.Local.Id. Esegue dateTime la conversione nell'ora del fuso orario di destinazione.Converts dateTime to the destination time zone's time.
DateTimeKind.Local Does not equal TimeZoneInfo.Local.Id.Does not equal TimeZoneInfo.Local.Id. Genera un'eccezione ArgumentException .Throws an ArgumentException.
DateTimeKind.Unspecified Qualsiasi.Any. Esegue dateTime la conversione nell'ora del fuso orario di destinazione.Converts dateTime to the destination time zone's time.

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 che corrispondono a sourceTimeZoneId e destinationTimeZoneId .Because it relies on calls to the FindSystemTimeZoneById method, the ConvertTimeBySystemTimeZoneId method performs a case-insensitive search to locate the time zones that correspond to sourceTimeZoneId and destinationTimeZoneId.

Se il valore del dateTime parametro è un'ora ambigua nel fuso orario di origine, viene interpretato come ora solare.If the value of the dateTime parameter is an ambiguous time in the source time zone, it is interpreted as a standard time. Se il dateTime parametro è un'ora non valida nel fuso orario di origine, questo metodo genera un'eccezione ArgumentException .If the dateTime parameter is an invalid time in the source time zone, this method throws an ArgumentException.

La Kind proprietà del valore restituito DateTime è impostata su DateTimeKind.Unspecified , a meno che il fuso orario di destinazione non sia UTC (Coordinated Universal Time), nel qual caso è impostato su DateTimeKind.Utc .The Kind property of the returned DateTime value is set to DateTimeKind.Unspecified unless the destination time zone is Coordinated Universal Time (UTC), in which case it is set to DateTimeKind.Utc.

Si applica a