Compartilhar via


TimeZoneInfo.ConvertTimeBySystemTimeZoneId Método

Definição

Converte um horário para o horário em outro fuso horário com base em um identificador de fuso horário.

Sobrecargas

ConvertTimeBySystemTimeZoneId(DateTime, String)

Converte um horário para o horário em outro fuso horário com base no identificador do fuso horário.

ConvertTimeBySystemTimeZoneId(DateTimeOffset, String)

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

ConvertTimeBySystemTimeZoneId(DateTime, String)

Origem:
TimeZoneInfo.cs
Origem:
TimeZoneInfo.cs
Origem:
TimeZoneInfo.cs

Converte um horário para o horário em outro 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 hora a ser convertida.

destinationTimeZoneId
String

O identificador do fuso horário de destino.

Retornos

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

Exceções

destinationTimeZoneId é null.

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

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.

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

Comentários

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

Essa sobrecarga é praticamente idêntica à chamada do ConvertTime(DateTime, TimeZoneInfo) método, exceto que permite que você especifique o fuso horário de destino por seu identificador e não por uma referência de objeto. Esse método é mais útil quando você deve converter uma hora sem recuperar o objeto de fuso horário que corresponde a ele e você não precisa saber se a hora convertida é padrão ou horário de verão.

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

Valor da propriedade do tipo Fuso horário de origem Comportamento do método
DateTimeKind.Local Local Converte a hora local na hora em destinationTimeZone.
DateTimeKind.Utc Utc Converte UTC (Tempo Universal Coordenado) na hora em destinationTimeZone.
DateTimeKind.Unspecified Supõe-se que seja Local. Converte a hora local na hora em destinationTimeZone.

A Kind propriedade do valor retornado DateTime é definida conforme mostrado na tabela a seguir.

Condição Valor da propriedade Kind retornado
O destinationTimeZone é TimeZoneInfo.Utc.Id. DateTimeKind.Utc
Qualquer outro destinationTimeZone valor. DateTimeKind.Unspecified

Se o valor do parâmetro for uma hora local ambígua dateTime , ele será interpretado como uma hora padrão. Se o dateTime parâmetro for uma hora local inválida, esse método gerará um 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.

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 de UTI em Linux e macOS. Ele 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 de comprimento, mas não no caso, para que ocorra uma correspondência bem-sucedida; ou seja, a comparação de destinationTimeZoneId com identificadores de fuso horário não diferencia maiúsculas de minúsculas.

Confira também

Aplica-se a

ConvertTimeBySystemTimeZoneId(DateTimeOffset, String)

Origem:
TimeZoneInfo.cs
Origem:
TimeZoneInfo.cs
Origem:
TimeZoneInfo.cs

Converte um horário para o horário em outro 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 hora a ser convertida.

destinationTimeZoneId
String

O identificador do fuso horário de destino.

Retornos

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

Exceções

destinationTimeZoneId é null.

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

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.

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

Comentários

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

Essa sobrecarga é idêntica à chamada do ConvertTime(DateTimeOffset, TimeZoneInfo) método, exceto que permite que você especifique o fuso horário de destino por seu identificador e não por uma referência de objeto. Esse método é mais útil quando você deve converter uma hora sem recuperar o objeto de fuso horário que corresponde a ele e você não precisa saber se a hora convertida é padrão ou horário de verão.

Como o dateTimeOffset parâmetro representa uma data e hora junto com o deslocamento dessa hora do UTC (Tempo Universal Coordenado), ele não pode representar uma hora ambígua ou uma hora inválida.

Esse método recupera o fuso horário cujo identificador é especificado pelo destinationTimeZoneId parâmetro do registro em sistemas Windows e da Biblioteca de ICU em Linux e macOS. Ele 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 de comprimento, mas não no caso, para que ocorra uma correspondência bem-sucedida; ou seja, a comparação de destinationTimeZoneId com identificadores de fuso horário não diferencia maiúsculas de minúsculas.

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

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.

Confira também

Aplica-se a

ConvertTimeBySystemTimeZoneId(DateTime, String, String)

Origem:
TimeZoneInfo.cs
Origem:
TimeZoneInfo.cs
Origem:
TimeZoneInfo.cs

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

sourceTimeZoneId
String

O identificador do fuso horário de origem.

destinationTimeZoneId
String

O identificador do fuso horário de destino.

Retornos

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

Exceções

A propriedade Kind do parâmetro dateTime 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 Registro estão corrompidos.

O usuário não tem as permissões necessárias para ler as chaves do Registro que armazenam dados de fuso horário.

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

- ou -

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

Exemplos

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

Comentários

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

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 destino usando seus identificadores em vez de seus TimeZoneInfo objetos. Esse método é mais útil quando você deve converter uma hora sem recuperar o objeto de fuso horário que corresponde a ele e você não precisa saber se a hora convertida é padrão ou horário de verão.

Esse método recupera os fusos horários cujos identificadores são os sourceTimeZoneId parâmetros e destinationTimeZoneId do registro em sistemas Windows e da Biblioteca de UTI em Linux e macOS. Ele não pode 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 a seguir.

Valor DateTime.Kind valor sourceTimeZone Comportamento do método
DateTimeKind.Utc É TimeZoneInfo.Utc.Idigual a . Converte dateTime na hora do fuso horário de destino.
DateTimeKind.Utc Does not equal TimeZoneInfo.Utc.Id. Lança um ArgumentException.
DateTimeKind.Local É TimeZoneInfo.Local.Idigual a . Converte dateTime na hora do fuso horário de destino.
DateTimeKind.Local Does not equal TimeZoneInfo.Local.Id. Lança um ArgumentException.
DateTimeKind.Unspecified Qualquer um. Converte dateTime na hora do fuso horário de destino.

Como ele depende de 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 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, ele será interpretado como uma hora padrão. Se o dateTime parâmetro for uma hora inválida no fuso horário de origem, esse método gerará um 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 é definido DateTimeKind.Utccomo .

Confira também

Aplica-se a