Как установить системное время в UTC

Так что мне нужно сценарий установки системной даты и времени из командной строки (CMD.exe, BATCH возможно), но я сталкиваюсь с трудностями с часовыми поясами против UTC и тому подобное.

Мой источник даты и времени - UTC, который является самым переносимым и поэтому имеет смысл.

Первоначально этот код был реализован с использованием (и эквивалент для части даты)

cmd.exe /C time HH:mm

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

Поскольку доступ к системным свойствам через WMIC популярен для получения времени (формат времени объясняется, например, здесь и здесь), я с радостью посмотрел на глагол set вместо широко используемого get и попробовал (из cmd.exe, запущенного от имени администратора):

C:\>wmic os get localdatetime
LocalDateTime
20180119112409.189000+060

C:\>wmic os set localdatetime=20180119122400.000000+060
Updating property(s) of '\\HOST\ROOT\CIMV2:Win32_OperatingSystem=@'
Property(s) update successful.

C:\>wmic os get localdatetime
LocalDateTime
20180119112438.447000+060

set сообщает, что это было успешно, но значение не обновлено. Возникает вопрос: можно ли +000 сигнализировать, что время UTC или если это будет установлено localtimezone также.

Я видел другое свойство в отношении времени, поэтому я попытался

C:\>wmic path win32_utctime set Hour=11
Updating property(s) of '\\HOST\root\cimv2:Win32_UTCTime=@'
ERROR:
Description = Provider is not capable of the attempted operation

То, о чем я могу думать, это получить смещение UTC в пакетном скрипте через

C:\>wmic os get currenttimezone

проанализируйте абсолютное значение, примените его к дате и времени UTC, которое я имею в качестве входных данных. Затем разделить и использовать time а также date еще раз, но это кажется слишком утомительным для такой простой задачи.

У меня нет доступа к Powershell, решение должно быть максимально переносимым (оно также должно работать на WindowsPE с включенной полной поддержкой wmic).

0 ответов

Другие вопросы по тегам