- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2018-07-22T14:46:35+09:00","","")
#navi(../)
* PowerShellでUNIXTIMEを取得する方法 [#z4452bcf]
PowerShellのGet-Dateコマンドレットを使ってUNIX TIMEを取得する方法を以下に記します。
#contents
#htmlinsertpcsp(win-top.html,win-sp.html)
* UNIXTIME算出手順 [#ga7bf6b9]
Get-DateにUNIX時間の元期(epoch)である、1970/1/1 0:0:0 GMTを設定し、引き算することにより~
UNIX時間を算出してみます。
+ UNIXTIMEを設定します。
$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を設定できました。
+現在の日時から$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
上記の通り、引き算したときの値が表示されます。~
UNIX時間は1970/1/1 0:0:0からの経過秒数なので、''TotalSeconds''がUNIX時間となります。
+ UNIX_EPOCHから1時間経過したUNIX時間を取得してみる
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時刻を算出する方法でした。
#htmlinsertpcsp(win-btm.html,win-sp.html)