Заметки о Windows и других программных продуктах Microsoft...

Изменение часового пояса в Windows из командной строки

Изменение часового пояса в Windows из командной строки

Часовой пояс или временная зона (Time zone) является одним из важных системных параметров, необходимых для корректной работы операционной системы. Неправильно установленный часовой пояс может привести к проблемам в работе программ и самой ОС, поэтому его значение должно строго соответствовать географическому расположению компьютера.

Изменять часовой пояс приходится нечасто, как правило после установки ОС в этом нет необходимости. Но иногда бывают экстренные ситуации, например неожиданная отмена перехода на летнее\зимнее время и, как следствие, массовая смена часовых поясов. В этом случае нас может спасти командная строка. В Windows есть пара способов изменения часового пояса из командной строки, которые мы и рассмотрим.

Утилита TZUtil

Утилита командной строки TZUtil (Windows Time Zone Utility) специально предназначена для изменения часового пояса в операционных системах Windows. Впервые она появилась в Windows Vista\Server 2008 в качестве отдельного обновления, а начиная с Windows 7\Server 2008 R2 входит в состав операционной системы. Исполняемый файл утилиты tzutil.exe хранится в каталоге %WINDIR%\System32.

Синтаксис у tzutil довольно простой. Для вывода справки воспользуемся командой:

tzutil /?

tzutil help

 

Просмотреть текущий часовой пояс можно командой:

tzutil /g

tzutil вывод текущей временной зоны

 

А для вывода списка всех часовых поясов надо выполнить:

tzutil /l

tzutil просмотр всех временных зон

 

Для примера изменим текущий часовой пояс с Московского на Ижевский —  (UTC+04:00) Ижевск, Самара (Russia Time Zone 3). Для этого выполним команду:

tzutil /s "Russia Time Zone 3"

Примечание. Для отключения перехода на летнее время при установке часового пояса необходимо к названию часового пояса добавлять суффикс _dstoff, например:

tzutil /s “Pacific Standard Time_dstoff”

В связи с отменой перехода на летнее время это не очень актуально, но кто знает 🙂

tzutil изменение временной зоны

 

Кстати, утилита w32tm с ключом /tz также умеет показывать текущий часовой пояс:

w32tm /tz

просмотр текущей временной зоны с помощью w32tm

PowerShell

Начиная с PowerShell версии 5.1 управлять часовыми поясами можно с помощью специальных командлетов Get-TimeZone и Set-TimeZone. Первый предназначен для просмотра информации о часовых поясах, второй соответственно для их изменения. Для того, чтобы посмотреть текущий пояс, надо просто выполнить команду:

Get-TimeZone

просмотр текущей временной зоны с помощью PowerShell

 

А так можно вывести весь список:

Get-TimeZone -ListAvailable

Вывод всех временных зон с помощью PowerShell

 

Теперь вернем обратно часовой пояс (UTC+03:00) Москва, Санкт-Петербург, Волгоград (Russian Standard Time):

Set-TimeZone -Id "Russian Standard Time"

изменение текущей временной зоны с помощью PowerShell

 

Еще для получения информации о часовых поясах можно воспользоваться статическими .Net классами System.TimeZoneInfo и System.TimeZone. Например посмотреть текущий пояс можно так:

[System.TimeZoneInfo]::Local

или так:

[System.TimeZone]::CurrentTimeZone

вывод временной зоны с помощью классов .Net

 

А список часовых поясов можно вывести таким способом:

[System.TimeZoneInfo]::GetSystemTimeZones()

вывод всех временных зон с помощью классов .Net

 
 
Комментарии

Пока нет комментариев.