TimeZoneInfo.ConvertTimeBySystemTimeZoneId TimeZoneInfo.ConvertTimeBySystemTimeZoneId TimeZoneInfo.ConvertTimeBySystemTimeZoneId Method

Definição

Converte um horário para o horário em outro fuso horário com base em um identificador de fuso horário.Converts a time to the time in another time zone based on a time zone identifier.

Sobrecargas

ConvertTimeBySystemTimeZoneId(DateTime, String) ConvertTimeBySystemTimeZoneId(DateTime, String) ConvertTimeBySystemTimeZoneId(DateTime, String)

Converte um horário para o horário em outro fuso horário com base no identificador do fuso horário.Converts a time to the time in another time zone based on the time zone's identifier.

ConvertTimeBySystemTimeZoneId(DateTimeOffset, String) ConvertTimeBySystemTimeZoneId(DateTimeOffset, String) ConvertTimeBySystemTimeZoneId(DateTimeOffset, String)

Converte um horário para o horário em outro fuso horário com base no identificador do fuso horário.Converts a time to the time in another time zone based on the time zone's identifier.

ConvertTimeBySystemTimeZoneId(DateTime, String, String) ConvertTimeBySystemTimeZoneId(DateTime, String, String) ConvertTimeBySystemTimeZoneId(DateTime, String, String)

Converte uma hora de um fuso horário para outro com base em identificadores de fuso horário.Converts a time from one time zone to another based on time zone identifiers.

ConvertTimeBySystemTimeZoneId(DateTime, String) ConvertTimeBySystemTimeZoneId(DateTime, String) ConvertTimeBySystemTimeZoneId(DateTime, String)

Converte um horário para o horário em outro fuso horário com base no identificador do fuso horário.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

Parâmetros

dateTime
DateTime DateTime DateTime

A data e hora a ser convertida.The date and time to convert.

destinationTimeZoneId
String String String

O identificador do fuso horário de destino.The identifier of the destination time zone.

Retornos

A data e hora no fuso horário de destino.The date and time in the destination time zone.

Exceções

destinationTimeZoneId é null.destinationTimeZoneId is null.

O identificador de fuso horário foi encontrado, mas os dados do Registro estão corrompidos.The time zone identifier was found, but the registry data is corrupted.

O processo não tem as permissões necessárias para ler a partir da chave do Registro que contém as informações de fuso horário.The process does not have the permissions required to read from the registry key that contains the time zone information.

O identificador destinationTimeZoneId não foi encontrado no sistema local.The destinationTimeZoneId identifier was not found on the local system.

Comentários

Ao executar a conversão, o ConvertTimeBySystemTimeZoneId método aplica quaisquer regras de ajuste em vigor destinationTimeZoneId no fuso horário.When performing the conversion, the ConvertTimeBySystemTimeZoneId method applies any adjustment rules in effect in the destinationTimeZoneId time zone.

Essa sobrecarga é basicamente idêntica à chamada do ConvertTime(DateTime, TimeZoneInfo) método, exceto pelo fato de que ela permite que você especifique o fuso horário de destino por seu identificador em vez de uma referência de objeto.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. Esse método é mais útil quando você deve converter uma hora sem recuperar o objeto de fuso horário que corresponde a ele e não precisa saber se o tempo convertido é padrão ou horário de verão.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.

O ConvertTimeBySystemTimeZoneId(DateTime, String) método determina o fuso horário de origem a partir do valor dateTime da propriedade Kind do parâmetro, como mostra a tabela a seguir.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.

Valor da propriedade do tipoKind property value Fuso horário de origemSource time zone Comportamento do métodoMethod behavior
DateTimeKind.Local Local Converte a hora local na hora em destinationTimeZone.Converts the local time to the time in destinationTimeZone.
DateTimeKind.Utc Utc Converte o tempo universal coordenado (UTC) no horário destinationTimeZoneem.Converts Coordinated Universal Time (UTC) to the time in destinationTimeZone.
DateTimeKind.Unspecified Considerado como Local.Assumed to be Local. Converte a hora local na hora em destinationTimeZone.Converts the local time to the time in destinationTimeZone.

A Kind Propriedade do valor retornado DateTime é definida conforme mostrado na tabela a seguir.The Kind property of the returned DateTime value is set as shown in the following table.

CondiçãoCondition Valor da Propriedade do tipo retornadoReturned Kind property value
O destinationTimeZone é TimeZoneInfo.Utc.Id.The destinationTimeZone is TimeZoneInfo.Utc.Id. DateTimeKind.Utc
Qualquer outro destinationTimeZone valor.Any other destinationTimeZone value. DateTimeKind.Unspecified

Se o valor do dateTime parâmetro for uma hora local ambígua, ele será interpretado como um horário padrão.If the value of the dateTime parameter is an ambiguous local time, it is interpreted as a standard time. Se o dateTime parâmetro for uma hora local inválida, esse método lançará um ArgumentException.If the dateTime parameter is an invalid local time, this method throws an ArgumentException.

Caso a conversão de dateTime resulte em uma data e um valor de hora anterior a DateTime.MinValue ou posterior a DateTime.MaxValue, este método retorna DateTime.MinValue ou DateTime.MaxValue, respectivamente.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.

Esse método recupera informações sobre o fuso horário cujo identificador é especificado pelo destinationTimeZoneId parâmetro do registro em sistemas Windows e da biblioteca do ICU no Linux e no 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. Ele não pode recuperar um objeto de fuso horário que é criado CreateCustomTimeZone usando o método.It cannot retrieve a time zone object that is created using the CreateCustomTimeZone method. O destinationTimeZoneId parâmetro deve corresponder exatamente ao identificador do fuso horário, mas não no caso, para que uma correspondência bem-sucedida ocorra; ou seja, a comparação de com identificadores destinationTimeZoneId de fuso horário não diferencia maiúsculas de minúsculas.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.

Veja também

ConvertTimeBySystemTimeZoneId(DateTimeOffset, String) ConvertTimeBySystemTimeZoneId(DateTimeOffset, String) ConvertTimeBySystemTimeZoneId(DateTimeOffset, String)

Converte um horário para o horário em outro fuso horário com base no identificador do fuso horário.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

Parâmetros

dateTimeOffset
DateTimeOffset DateTimeOffset DateTimeOffset

A data e hora a ser convertida.The date and time to convert.

destinationTimeZoneId
String String String

O identificador do fuso horário de destino.The identifier of the destination time zone.

Retornos

A data e hora no fuso horário de destino.The date and time in the destination time zone.

Exceções

destinationTimeZoneId é null.destinationTimeZoneId is null.

O identificador de fuso horário foi encontrado, mas os dados do Registro estão corrompidos.The time zone identifier was found but the registry data is corrupted.

O processo não tem as permissões necessárias para ler a partir da chave do Registro que contém as informações de fuso horário.The process does not have the permissions required to read from the registry key that contains the time zone information.

O identificador destinationTimeZoneId não foi encontrado no sistema local.The destinationTimeZoneId identifier was not found on the local system.

Comentários

Ao executar a conversão, o ConvertTimeBySystemTimeZoneId método aplica quaisquer regras de ajuste em vigor destinationTimeZoneId no fuso horário.When performing the conversion, the ConvertTimeBySystemTimeZoneId method applies any adjustment rules in effect in the destinationTimeZoneId time zone.

Essa sobrecarga é idêntica à chamada do ConvertTime(DateTime, TimeZoneInfo) método, exceto pelo fato de que ela permite que você especifique o fuso horário de destino por seu identificador em vez de uma referência de objeto.This overload is 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. Esse método é mais útil quando você deve converter uma hora sem recuperar o objeto de fuso horário que corresponde a ele e não precisa saber se o tempo convertido é padrão ou horário de verão.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.

Como o dateTimeOffset parâmetro representa uma data e uma hora junto com o deslocamento desse tempo do UTC (tempo Universal Coordenado), ele não pode representar uma hora ambígua ou uma hora inválida.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.

Esse método recupera o fuso horário cujo identificador é especificado pelo destinationTimeZoneId parâmetro do registro em sistemas Windows e da biblioteca do ICU no Linux e no 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. Ele não pode recuperar um objeto de fuso horário que é criado CreateCustomTimeZone usando o método.It cannot retrieve a time zone object that is created using the CreateCustomTimeZone method. O destinationTimeZoneId parâmetro deve corresponder exatamente ao identificador do fuso horário, mas não no caso, para que uma correspondência bem-sucedida ocorra; ou seja, a comparação de com identificadores destinationTimeZoneId de fuso horário não diferencia maiúsculas de minúsculas.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.

Ao converter o dateTimeOffset valor para a hora no fuso horário de destino, o método leva em conta quaisquer regras de ajuste em vigor no fuso horário de destino.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.

Caso a conversão de dateTimeOffset resulte em uma data e um valor de hora anterior a DateTimeOffset.MinValue ou posterior a DateTimeOffset.MaxValue, este método retorna DateTimeOffset.MinValue ou DateTimeOffset.MaxValue, respectivamente.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.

Veja também

ConvertTimeBySystemTimeZoneId(DateTime, String, String) ConvertTimeBySystemTimeZoneId(DateTime, String, String) ConvertTimeBySystemTimeZoneId(DateTime, String, String)

Converte uma hora de um fuso horário para outro com base em identificadores de fuso horário.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

Parâmetros

dateTime
DateTime DateTime DateTime

A data e hora a ser convertida.The date and time to convert.

sourceTimeZoneId
String String String

O identificador do fuso horário de origem.The identifier of the source time zone.

destinationTimeZoneId
String String String

O identificador do fuso horário de destino.The identifier of the destination time zone.

Retornos

A data e hora no fuso horário de destino que corresponde ao parâmetro dateTime no fuso horário de origem.The date and time in the destination time zone that corresponds to the dateTime parameter in the source time zone.

Exceções

A propriedade Kind do parâmetro dateTime não corresponde ao fuso horário de origem.The Kind property of the dateTime parameter does not correspond to the source time zone.

- ou --or- dateTime é uma hora inválida no fuso horário de origem.dateTime is an invalid time in the source time zone.

sourceTimeZoneId é null.sourceTimeZoneId is null.

- ou --or- destinationTimeZoneId é null.destinationTimeZoneId is null.

Os identificadores de fuso horário foram encontrados, mas os dados do Registro estão corrompidos.The time zone identifiers were found, but the registry data is corrupted.

O usuário não tem as permissões necessárias para ler as chaves do Registro que armazenam dados de fuso horário.The user does not have the permissions required to read from the registry keys that hold time zone data.

O identificador sourceTimeZoneId não foi encontrado no sistema local.The sourceTimeZoneId identifier was not found on the local system.

- ou --or- O identificador destinationTimeZoneId não foi encontrado no sistema local.The destinationTimeZoneId identifier was not found on the local system.

Exemplos

O exemplo a seguir usa TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime, String, String) o método para exibir a hora que corresponde à hora do sistema local em oito cidades do mundo.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"))

Comentários

Ao executar a conversão, o ConvertTimeBySystemTimeZoneId método aplica quaisquer regras de ajuste em vigor destinationTimeZoneId no fuso horário.When performing the conversion, the ConvertTimeBySystemTimeZoneId method applies any adjustment rules in effect in the destinationTimeZoneId time zone.

Embora seja semelhante ao TimeZoneInfo.ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) método, você pode usar TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime, String, String) para especificar os fusos horários de origem e de destino usando seus identificadores em vez TimeZoneInfo de seus objetos.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. Esse método é mais útil quando você deve converter uma hora sem recuperar o objeto de fuso horário que corresponde a ele e não precisa saber se o tempo convertido é padrão ou horário de verão.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.

Esse método recupera os fusos horários cujos identificadores são sourceTimeZoneId os destinationTimeZoneId parâmetros e do registro em sistemas Windows e da biblioteca ICU no 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. Ele não pode recuperar objetos de fuso horário que são criados CreateCustomTimeZone usando o método.It cannot retrieve time zone objects that are created using the CreateCustomTimeZone method.

O valor da Kind propriedade dateTime do sourceTimeZoneId parâmetro deve corresponder ao parâmetro, como mostra a tabela a seguir.The value of the Kind property of the dateTime parameter must correspond to the sourceTimeZoneId parameter, as the following table shows.

Valor DateTime. KindDateTime.Kind value valor de sourceTimeZonesourceTimeZone value Comportamento do métodoMethod behavior
DateTimeKind.Utc É TimeZoneInfo.Utc.Idigual a.Equals TimeZoneInfo.Utc.Id. Converte dateTime na hora do fuso horário de destino.Converts dateTime to the destination time zone's time.
DateTimeKind.Utc Does not equal TimeZoneInfo.Utc.Id.Does not equal TimeZoneInfo.Utc.Id. Lança um ArgumentException.Throws an ArgumentException.
DateTimeKind.Local É TimeZoneInfo.Local.Idigual a.Equals TimeZoneInfo.Local.Id. Converte dateTime na hora do fuso horário de destino.Converts dateTime to the destination time zone's time.
DateTimeKind.Local Does not equal TimeZoneInfo.Local.Id.Does not equal TimeZoneInfo.Local.Id. Lança um ArgumentException.Throws an ArgumentException.
DateTimeKind.Unspecified Outro.Any. Converte dateTime na hora do fuso horário de destino.Converts dateTime to the destination time zone's time.

Como ele se baseia em chamadas para o FindSystemTimeZoneById método, o ConvertTimeBySystemTimeZoneId método executa uma pesquisa que não diferencia maiúsculas de minúsculas para localizar os fusos destinationTimeZoneIdhorários que correspondem a sourceTimeZoneId e.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 o valor do dateTime parâmetro for um horário ambíguo no fuso horário de origem, ele será interpretado como um horário padrão.If the value of the dateTime parameter is an ambiguous time in the source time zone, it is interpreted as a standard time. Se o dateTime parâmetro for uma hora inválida no fuso horário de origem, esse método lançará um ArgumentException.If the dateTime parameter is an invalid time in the source time zone, this method throws an ArgumentException.

A Kind Propriedade do valor retornado DateTime é definida como DateTimeKind.Unspecified a menos que o fuso horário de destino seja UTC (tempo Universal Coordenado); nesse caso, ele DateTimeKind.Utcé definido como.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.

Veja também

Aplica-se a