Поделиться через


Местное время

Хотя система внутренне использует время в формате UTC, в приложениях обычно отображается местное время, которое является датой и временем суток для вашего часового пояса. Поэтому, чтобы обеспечить правильные результаты, необходимо знать, ожидает ли функция получать время в формате UTC или местное время, а также возвращает ли функция время в формате UTC или местное время.

Текущие параметры часового пояса управляют преобразованием системы между временем в формате UTC и местным временем. Текущие параметры часового пояса можно получить с помощью функции GetTimeZoneInformation . Функция копирует результат в структуру TIME_ZONE_INFORMATION и возвращает значение, указывающее, является ли местное время в настоящее время стандартным или переходом на летнее время (DST). Параметры часового пояса можно задать с помощью функции SetTimeZoneInformation . Для поддержки границ летнего времени, которые меняются из года в год, используйте функции GetTimeZoneInformationForYear, GetDynamicTimeZoneInformation и SetDynamicTimeZoneInformation .

Чтобы получить местное время, используйте функцию GetLocalTime . GetLocalTime преобразует системное время в местное время на основе текущих параметров часового пояса и копирует результат в структуру SYSTEMTIME . Системное время можно задать с помощью функции SetLocalTime . SetLocalTime предполагает, что вы указали местное время и преобразуется в utc, прежде чем задавать системное время.

При вызове SetLocalTime система использует текущие сведения о часовом поясе, включая летнее время, для выполнения преобразования. Обратите внимание, что система использует летнее время текущего времени, а не нового времени. Поэтому, чтобы обеспечить правильный результат, вызовите SetLocalTime во второй раз, теперь, когда первый вызов обновил параметр летнего времени.

Чтобы преобразовать время в формате UTC в местное время, используйте функцию SystemTimeToTzSpecificLocalTime . Чтобы преобразовать местное время в время в формате UTC, используйте функцию TzSpecificLocalTimeToSystemTime .