Windows の TimeZone 設定といえば コマンドプロンプト以外にも PowerShell や .NETでもできます。
Windows 10 でどのようなやり方があるのか軽く見てみましょう。
目次
各種方法
ざっくり見てみます。
コマンドプロンプト
TZutil が安定でしょうか。
書式が相変わらずめんどくさいです。
TZUTIL </? | /g | /l | /s TimeZoneValue[_dstoff]>
今のタイムゾーンを取得したり、タイムゾーンの一覧取得、設定が可能です。
PowerShell
Powershell 5.0 から Microsoft.PowerShell.Management
モジュールに Timezone に関する Cmdlet が2つ追加されました。Get と Set です。
PS > man Get-TimeZone NAME Get-TimeZone SYNTAX Get-TimeZone [[-Name] <string[]>] [<CommonParameters>] Get-TimeZone -Id <string[]> [<CommonParameters>] Get-TimeZone -ListAvailable [<CommonParameters>] ALIASES gtz REMARKS Get-Help cannot find the Help files for this cmdlet on this computer. It is displaying only partial help. -- To download and install Help files for the module that includes this cmdlet, use Update-Help. -- To view the Help topic for this cmdlet online, type: "Get-Help Get-TimeZone -Online" or go to https://go.microsoft.com/fwlink/?LinkId=799468.
使い方も簡単です。Get-TimeZone
で今のタイムゾーン取得、Get-TimeZone -ListAvailable
で一覧取得、Set-TimeZone
で設定。まんまですね。
ちなみに PowerShell DSC でも可能です。まだリリースされてませんが、1.6 でWMF5.1 や Nano Server 向けに TimeZone Cmdlet を使うように分岐が入ります。
.NET (C#)
当然 C# でも操作できます。 Set がだるいので、コマンドをラップしてもいいかもしれません。
WSL (Bash on Ubuntu on Windows)
WSL から UbuntuでやるようにはSETがちょっとうまくいかないのでどうすればいいですかねぇ。
手元の bash で sudo 壊れて直してないので試してませんが、ln 置き換えでいい気がします。 gist.github.com
2017/6/21 追記
記事を見た先輩から教えていただきました。
Ubuntu のヘルプ通り、本来ならこれで行けます
UbuntuTime - Community Help Wiki
しかし、現在バグがあらいます。
修正までは以下でいいようです。
まとめ
どれを使ってもいいでしょう。この程度だと PowerShell が一番楽、かな?