TimeZoneInfo.ConvertTimeBySystemTimeZoneId Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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.
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.