Compartilhar via


Hora Local

Embora o sistema use a hora baseada em UTC internamente, seus aplicativos geralmente exibirão o hora local, que é a data e a hora do dia para o fuso horário. Portanto, para garantir os resultados corretos, você deve estar ciente de se uma função espera receber uma hora baseada em UTC ou uma hora local e se a função retorna uma hora baseada em UTC ou uma hora local.

As configurações atuais de fuso horário controlam como o sistema se converte entre UTC e hora local. Você pode recuperar as configurações de fuso horário atuais usando a função GetTimeZoneInformation. A função copia o resultado para uma estrutura de TIME_ZONE_INFORMATION e retorna um valor que indica se a hora local está atualmente em horário padrão ou horário de verão (DST). Você pode definir as configurações de fuso horário usando a funçãoSetTimeZoneInformation. Para dar suporte a limites de horário de verão que mudam de ano para ano, use as funções GetTimeZoneInformationForYear, GetDynamicTimeZoneInformation e SetDynamicTimeZoneInformation.

Para recuperar a hora local, use a função GetLocalTime. GetLocalTime converte a hora do sistema em uma hora local com base nas configurações de fuso horário atuais e copia o resultado para uma estrutura deSYSTEMTIME. Você pode definir o tempo do sistema usando a funçãoSetLocalTime. SetLocalTime pressupõe que você especificou uma hora local e converte em UTC antes de definir a hora do sistema.

Quando você chama SetLocalTime, o sistema usa as informações de fuso horário atuais, incluindo a configuração de horário de verão, para executar a conversão. Observe que o sistema usa a configuração de horário de verão da hora atual, não a nova hora que você está definindo. Portanto, para garantir o resultado correto, chame SetLocalTime uma segunda vez, agora que a primeira chamada atualizou a configuração de horário de verão.

Para converter uma hora baseada em UTC em uma hora local, use a função SystemTimeToTzSpecificLocalTime. Para converter uma hora local em uma hora baseada em UTC, use a funçãoTzSpecificLocalTimeToSystemTime.