PowerShellのGet-Dateコマンドレットを使ってUNIX TIMEを取得する方法を以下に記します。
Get-DateにUNIX時間の元期(epoch)である、1970/1/1 0:0:0 GMTを設定し、引き算することにより
UNIX時間を算出してみます。
$UNIX_EPOCH = Get-Date("1970/1/1 0:0:0 GMT")以下、実際に設定し、変数$UNIX_EPOCHを確認すると日本時間(+9時間)になっていることが確認できます。
PS C:\> $UNIX_EPOCH = Get-Date("1970/1/1 0:0:0 GMT") PS C:\> $UNIX_EPOCH 1970年1月1日 9:00:00これで種となる$UNIX_EPOCHを設定できました。
PS C:\> (Get-Date) - $UNIX_EPOCH Days : 17734 Hours : 5 Minutes : 36 Seconds : 49 Milliseconds : 73 Ticks : 15322378090730053 TotalDays : 17734.2339013079 TotalHours : 425621.61363139 TotalMinutes : 25537296.8178834 TotalSeconds : 1532237809.07301 TotalMilliseconds : 1532237809073.01上記の通り、引き算したときの値が表示されます。
PS C:\> $OneHour = $UNIX_EPOCH.AddHours(1) PS C:\> $OneHour 1970年1月1日 10:00:00 PS C:\> ($OneHour - $UNIX_EPOCH).TotalSeconds 3600上記の通り、3600秒(1時間)経過した値が返却されます。
したがって、以下の構文でUNIX時間を取得することができます。
((Get-Date("西暦/月/日 時:分:秒")) - (Get-Date("1970/1/1 0:0:0 GMT"))).TotalSeconds
実際に2018/7/22 0:0:0 を設定し実行したときの出力です。
PS C:\> ((Get-Date("2018/7/22 0:0:0")) - (Get-Date("1970/1/1 0:0:0 GMT"))).TotalSeconds 1532185200
以上、PowerShellでUNIX時刻を算出する方法でした。