#author("2018-07-22T14:46:35+09:00","","")
#author("2018-07-22T16:45:26+09:00","","")
#navi(../)
* PowerShellでUNIXTIMEを取得する方法 [#z4452bcf]
PowerShellのGet-Dateコマンドレットを使ってUNIX TIMEを取得する方法を以下に記します。

#contents
#htmlinsertpcsp(win-top.html,win-sp.html)

* 関連記事 [#r6fe6a0a]
-[[PowerShellでUNIXTIMEを取得する方法>PowerShell/UNIXTIMEを取得する方法]]
-[[PowerShellでUNIXTIMEから通常の日時に変換する方法>PowerShell/UNIXTIMEから通常の日時に変換する方法]]

* 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)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS