TimeZoneInfo.ConvertTimeBySystemTimeZoneId Método

Definição

Converte uma hora para a hora noutro fuso horário com base num identificador de fuso horário.

Sobrecargas

Name Description
ConvertTimeBySystemTimeZoneId(DateTime, String)

Converte uma hora para a hora noutro fuso horário com base no identificador do fuso horário.

ConvertTimeBySystemTimeZoneId(DateTimeOffset, String)

Converte uma hora para a hora noutro fuso horário com base no identificador do fuso horário.

ConvertTimeBySystemTimeZoneId(DateTime, String, String)

Converte uma hora de um fuso horário para outro com base nos identificadores de fuso horário.

ConvertTimeBySystemTimeZoneId(DateTime, String)

Converte uma hora para a hora noutro fuso horário com base no identificador do fuso horário.

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

Parâmetros

dateTime
DateTime

A data e a hora da conversão.

destinationTimeZoneId
String

O identificador do fuso horário de destino.

Devoluções

A data e hora no fuso horário do destino.

Exceções

destinationTimeZoneId é null.

O identificador do fuso horário foi encontrado, mas os dados do registo estão corrompidos.

O processo não tem as permissões necessárias para ler da chave do registo que contém a informação do fuso horário.

O destinationTimeZoneId identificador não foi encontrado no sistema local.

Observações

Ao realizar a conversão, o ConvertTimeBySystemTimeZoneId método aplica quaisquer regras de ajuste em vigor no destinationTimeZoneId fuso horário.

Esta sobrecarga é em grande parte idêntica a chamar o ConvertTime(DateTime, TimeZoneInfo) método, exceto que permite especificar o fuso horário de destino pelo seu identificador em vez de por uma referência de objeto. Este método é mais útil quando tem de converter uma hora sem recuperar o objeto fuso horário correspondente e não precisa de saber se a hora convertida é padrão ou de verão.

O ConvertTimeBySystemTimeZoneId(DateTime, String) método determina o fuso horário de origem a partir do valor da dateTime propriedade do Kind parâmetro, como mostra a tabela seguinte.

Valor da propriedade Fuso horário de origem Comportamento do método
DateTimeKind.Local Local Converte a hora local para a hora em destinationTimeZone.
DateTimeKind.Utc Utc Converte o Tempo Universal Coordenado (UTC) para o tempo em destinationTimeZone.
DateTimeKind.Unspecified Presume-se que seja Local. Converte a hora local para a hora em destinationTimeZone.

A Kind propriedade do valor devolvido DateTime é definida conforme mostrado na tabela seguinte.

Condition Valor da propriedade em Tipo Devolvida
O destinationTimeZone é TimeZoneInfo.Utc.Id. DateTimeKind.Utc
Qualquer outro destinationTimeZone valor. DateTimeKind.Unspecified

Se o valor do dateTime parâmetro for uma hora local ambígua, é interpretado como uma hora padrão. Se o dateTime parâmetro for um tempo local inválido, este método gera um ArgumentException.

Se a conversão de dateTime resultar num valor de data e hora anteriores DateTime.MinValue ou posteriores a DateTime.MaxValue, este método devolve DateTime.MinValue ou DateTime.MaxValue, respetivamente.

Este método recupera informações sobre o fuso horário cujo identificador é especificado pelo parâmetro destinationTimeZoneId do registo em sistemas Windows e da Biblioteca ICU no Linux e macOS. Não pode recuperar um objeto de fuso horário criado usando o CreateCustomTimeZone método. O destinationTimeZoneId parâmetro deve corresponder exatamente ao identificador do fuso horário em termos de comprimento, mas não em caso para que ocorra uma correspondência bem-sucedida; ou seja, a comparação com destinationTimeZoneId identificadores de fuso horário é indistinta a maiúsculas e maiúsculas.

Ver também

Aplica-se a

ConvertTimeBySystemTimeZoneId(DateTimeOffset, String)

Converte uma hora para a hora noutro fuso horário com base no identificador do fuso horário.

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

Parâmetros

dateTimeOffset
DateTimeOffset

A data e a hora da conversão.

destinationTimeZoneId
String

O identificador do fuso horário de destino.

Devoluções

A data e hora no fuso horário do destino.

Exceções

destinationTimeZoneId é null.

O identificador do fuso horário foi encontrado, mas os dados do registo estão corrompidos.

O processo não tem as permissões necessárias para ler da chave do registo que contém a informação do fuso horário.

O destinationTimeZoneId identificador não foi encontrado no sistema local.

Observações

Ao realizar a conversão, o ConvertTimeBySystemTimeZoneId método aplica quaisquer regras de ajuste em vigor no destinationTimeZoneId fuso horário.

Esta sobrecarga é idêntica a chamar o ConvertTime(DateTimeOffset, TimeZoneInfo) método, exceto que permite especificar o fuso horário de destino pelo seu identificador em vez de por uma referência de objeto. Este método é mais útil quando tem de converter uma hora sem recuperar o objeto fuso horário correspondente e não precisa de saber se a hora convertida é padrão ou de verão.

Como o dateTimeOffset parâmetro representa uma data e hora juntamente com o deslocamento desse tempo em relação ao Tempo Universal Coordenado (UTC), não pode representar nem uma hora ambígua nem uma hora inválida.

Este método recupera o fuso horário cujo identificador é especificado pelo parâmetro destinationTimeZoneId do registo nos sistemas Windows e da ICU Library no Linux e macOS. Não pode recuperar um objeto de fuso horário criado usando o CreateCustomTimeZone método. O destinationTimeZoneId parâmetro deve corresponder exatamente ao identificador do fuso horário em termos de comprimento, mas não em caso para que ocorra uma correspondência bem-sucedida; ou seja, a comparação com destinationTimeZoneId identificadores de fuso horário é indistinta a maiúsculas e maiúsculas.

Ao converter o dateTimeOffset valor para a hora no fuso horário de destino, o método tem em conta quaisquer regras de ajuste em vigor no fuso horário de destino.

Se a conversão de dateTimeOffset resultar num valor de data e hora anteriores DateTimeOffset.MinValue ou posteriores a DateTimeOffset.MaxValue, este método devolve DateTimeOffset.MinValue ou DateTimeOffset.MaxValue, respetivamente.

Ver também

Aplica-se a

ConvertTimeBySystemTimeZoneId(DateTime, String, String)

Converte uma hora de um fuso horário para outro com base nos identificadores de fuso horário.

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

Parâmetros

dateTime
DateTime

A data e a hora da conversão.

sourceTimeZoneId
String

O identificador do fuso horário de origem.

destinationTimeZoneId
String

O identificador do fuso horário de destino.

Devoluções

A data e hora no fuso horário de destino que correspondem ao dateTime parâmetro no fuso horário de origem.

Exceções

A Kind propriedade do dateTime parâmetro não corresponde ao fuso horário de origem.

-ou-

dateTime é uma hora inválida no fuso horário de origem.

sourceTimeZoneId é null.

-ou-

destinationTimeZoneId é null.

Os identificadores de fuso horário foram encontrados, mas os dados do registo estão corrompidos.

O utilizador não tem as permissões necessárias para ler as chaves do registo que contêm os dados do fuso horário.

O sourceTimeZoneId identificador não foi encontrado no sistema local.

-ou-

O destinationTimeZoneId identificador não foi encontrado no sistema local.

Exemplos

O exemplo seguinte utiliza o TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime, String, String) método para mostrar a hora correspondente à hora do sistema local em oito cidades do mundo.

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"))

Observações

Ao realizar a conversão, o ConvertTimeBySystemTimeZoneId método aplica quaisquer regras de ajuste em vigor no destinationTimeZoneId fuso horário.

Embora seja semelhante ao TimeZoneInfo.ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) método, pode usar TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime, String, String) para especificar os fusos horários de origem e destino usando os seus identificadores em vez dos seus TimeZoneInfo objetos. Este método é mais útil quando tem de converter uma hora sem recuperar o objeto fuso horário correspondente e não precisa de saber se a hora convertida é padrão ou de verão.

Este método recupera os fusos horários cujos identificadores são os parâmetros sourceTimeZoneId e destinationTimeZoneId do registo em sistemas Windows e da Biblioteca ICU no Linux e macOS. Não consegue recuperar objetos de fuso horário criados usando o CreateCustomTimeZone método.

O valor da Kind propriedade do dateTime parâmetro deve corresponder ao sourceTimeZoneId parâmetro, como mostra a tabela seguinte.

valor DateTime.Kind Valor sourceTimeTimezone Comportamento do método
DateTimeKind.Utc É igual TimeZoneInfo.Utc.Ida . Converte dateTime para a hora do fuso horário de destino.
DateTimeKind.Utc Não é igual TimeZoneInfo.Utc.Ida . Lança um ArgumentException.
DateTimeKind.Local É igual TimeZoneInfo.Local.Ida . Converte dateTime para a hora do fuso horário de destino.
DateTimeKind.Local Não é igual TimeZoneInfo.Local.Ida . Lança um ArgumentException.
DateTimeKind.Unspecified Qualquer. Converte dateTime para a hora do fuso horário de destino.

Como depende de chamadas ao FindSystemTimeZoneById método, este ConvertTimeBySystemTimeZoneId realiza uma pesquisa insensível a maiúsculas minúsculas para localizar os fusos horários que correspondem a sourceTimeZoneId e destinationTimeZoneId.

Se o valor do dateTime parâmetro for uma hora ambígua no fuso horário de origem, é interpretado como uma hora padrão. Se o dateTime parâmetro for um tempo inválido no fuso horário de origem, este método gera um ArgumentException.

A Kind propriedade do valor devolvido DateTime é definida para DateTimeKind.Unspecified a menos que o fuso horário de destino seja o Tempo Universal Coordenado (UTC), caso em que está definido para DateTimeKind.Utc.

Ver também

Aplica-se a