TimeZoneInfo.ConvertTimeBySystemTimeZoneId Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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.
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.Id igual 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.Id igual 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 .