Ответ на этот вопрос раньше был нет, но изменился на: ДА, вроде как, иногда ...
За статья блога команды разработчиков сетей Windows :
Начиная с Server 2019 и API обновления Windows 10 октября [2018], теперь будут учитываться все дополнительные секунды, которые операционная система знает, когда она переводит FILETIME в SystemTime.
Поскольку с момента добавления этой функции не было выпущено дополнительных секунд, операционная система по-прежнему не знает о каких-либо дополнительных секундах. Однако, когда следующая официальная високосная секунда пробивается в мир, компьютеры Windows, на которых включена эта новая функция, будут отслеживать ее, и, таким образом, значения FILETIME
будут смещены на количество високосных секунд на компьютере в данный момент. они интерпретируются.
В блоге описывается:
Никаких изменений в FILETIME не производится. Он по-прежнему представляет число интервалов в 100 нс с начала эпохи. Что изменилось, так это интерпретация этого числа, когда оно конвертируется в SYSTEMTIME и обратно. Вот список уязвимых API:
- GetSystemTime
- GetLocalTime
- FileTimeToSystemTime
- FileTimeToLocalTime
- SystemTimeToFileTime
- SetSystemTime
- SetLocalTime
До этого выпуска у SYSTEMTIME были допустимые значения wSecond в диапазоне от 0 до 59. Теперь SYSTEMTIME обновлено и теперь позволяет использовать значение 60, при условии, что год, месяц и день представляют день, в течение которого допустима дополнительная секунда. 1037 *
...
Чтобы получить 60 секунд в структуре SYSTEMTIME, процесс должен явно подписаться.
Обратите внимание, что согласие применяется к поведению в функциях, перечисленных на том, как FILETIME
отображается на SYSTEMTIME
. Независимо от того, подписаны вы или нет, операционная система по-прежнему будет компенсировать значения FILETIME
в соответствии с дополнительными секундами, которые она знает.
В отношении совместимости в статье говорится:
Приложения, которые полагаются на сторонние фреймворки, должны убедиться, что реализация их фреймворка в Windows также вызывает правильные API для вычисления правильного времени, иначе приложение сообщит о неверном времени.
А также предоставляет ссылки на более раннюю запись , в которой описано, как отключить всю функцию, следующим образом:
... вы можете вернуться к предыдущему поведению операционной системы и отключить дополнительные секунды, добавив следующий раздел реестра:
HKLM:\SYSTEM\CurrentControlSet\Control\LeapSecondInformation
- Тип: "REG_DWORD"
- Имя: включено
- Значение:
0
Отключает общесистемную настройку
- Значение:
1
Включает общесистемную настройку
Далее перезагрузите систему.