Compartir a través de


Hora local

Aunque el sistema usa la hora basada en UTC internamente, las aplicaciones generalmente mostrarán la hora local, que es la fecha y hora del día para la zona horaria. Por lo tanto, para garantizar los resultados correctos, debe tener en cuenta si una función espera recibir una hora basada en UTC o una hora local y si la función devuelve una hora basada en UTC o una hora local.

La configuración de zona horaria actual controla cómo el sistema se convierte entre utc y hora local. Puede recuperar la configuración de zona horaria actual mediante la función GetTimeZoneInformation. La función copia el resultado en una estructura de TIME_ZONE_INFORMATION y devuelve un valor que indica si la hora local está actualmente en horario estándar o horario de verano (DST). Puede establecer la configuración de zona horaria mediante la funciónSetTimeZoneInformation. Para admitir límites para el horario de verano que cambian de año a año, use las funcionesGetTimeZoneInformationForYear , GetDynamicTimeZoneInformation y SetDynamicTimeZoneInformation.

Para recuperar la hora local, use la funciónGetLocalTime. GetLocalTime convierte la hora del sistema en una hora local en función de la configuración de zona horaria actual y copia el resultado en una estructura SYSTEMTIME. Puede establecer la hora del sistema mediante la funciónSetLocalTime. SetLocalTime supone que ha especificado una hora local y se convierte en UTC antes de establecer la hora del sistema.

Al llamar a SetLocalTime, el sistema usa la información de zona horaria actual, incluida la configuración del horario de verano, para realizar la conversión. Tenga en cuenta que el sistema usa la configuración del horario de verano de la hora actual, no la nueva hora que está estableciendo. Por lo tanto, para garantizar el resultado correcto, llame a SetLocalTime segunda vez, ahora que la primera llamada ha actualizado la configuración del horario de verano.

Para convertir una hora basada en UTC a una hora local, use la función SystemTimeToTzSpecificLocalTime. Para convertir una hora local a una hora basada en UTC, use la funciónTzSpecificLocalTimeToSystemTime.