В ходе работы система использует внутреннее время основанное на универсальном глобальном времени (UTC), поэтому Ваши приложения будут, как правило, показывать на экране местное время — дату и время дня Вашего часового пояса. Поэтому, чтобы гарантировать правильные результаты, Вы должны знать, ожидает ли функция получать основанное на универсальном глобальном времени (UTC) время или местное время, и возвращается ли значение функцией основанное на универсальном глобальном времени (UTC) время или местном времени.
Текущие параметры настроек часового пояса управляют системой преобразования между универсальным глобальным временем (UTC) и местным временем. Вы можете извлечь текущие параметры настройки часового пояса при помощи использования функции GetTimeZoneInformation. Функция копирует результат в структуру TIME_ZONE_INFORMATION и возвращает значение, указывающее, является ли местное время в текущий момент стандартным или летним временем. Вы можете установить параметры настройки часового пояса при помощи использования функции SetTimeZoneInformation.
Чтобы извлечь местное время, используйте функцию GetLocalTime. GetLocalTime преобразует системное время в местное время, основанное на текущих параметрах настройки часового пояса и копирует результат в структуру SYSTEMTIME. Вы можете установить системное время при помощи использования функции SetLocalTime. SetLocalTime предполагает, что Вы определили местное время и преобразовали в универсальное глобальное время (UTC) прежде, чем установить системное время.
Когда Вы вызываете функцию SetLocalTime, система использует текущую информацию часового пояса, включая параметры летнего времени, чтобы выполнить преобразование.
Обратите внимание! на то, что система использует параметр летнего времени текущего времени, а не установленное новое время. |
Поэтому, чтобы гарантировать правильный результат, вызовите функцию SetLocalTime второй раз, затем, чтобы обновить первый вызов определения параметра летнего времени.
Чтобы преобразовать основанное на универсальном глобальном времени (UTC) время в местное время, используйте функцию SystemTimeToTzSpecificLocalTime. Чтобы преобразовать местное время в основанное на универсальном глобальном времени (UTC) время, используйте функцию TzSpecificLocalTimeToSystemTime.