Partilhar via


Hora local

Embora o sistema use a hora baseada em UTC internamente, seus aplicativos geralmente exibirão a hora local , que é a data e a hora do dia para seu fuso horário. Portanto, para garantir resultados corretos, você deve estar ciente 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 converte entre UTC e hora local. Você pode recuperar as configurações atuais de fuso horário usando a funçãoGetTimeZoneInformation. 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 no horário padrão ou no horário de verão (DST). Você pode definir as configurações de fuso horário usando a funçãoSetTimeZoneInformation. Para dar suporte aos limites do horário de verão que mudam de ano para ano, use o GetTimeZoneInformationForYear GetDynamicTimeZoneInformation e funções de SetDynamicTimeZoneInformation.

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

Quando você chama SetLocalTime, o sistema usa as informações de fuso horário atual, 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 do horário de verão.

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