#author("2018-07-22T16:57:15+09:00","","")
#author("2018-07-22T17:00:55+09:00","","")
#navi(../)
* PowerShellでUNIXTIMEから通常の日時に変換する方法 [#i61c2233]
* PowerShellでUNIXTIMEから通常の日時(DateTime)に変換する方法 [#i61c2233]
PowerShellのGet-Dateコマンドレットを使ってUNIX TIMEから通常の日時(DateTime)に変換例を以下に記します。

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

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

* UNIX時間からDateTimeに変換する手順 [#ne126d9c]
Get-DateにUNIX時間の元期(epoch)である、1970/1/1 0:0:0 GMTを設定し、~
対象のUNIX時間を加算することによりDateTimeに変換することができます。
+ 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から一日後のUNIX時間を指定しDateTimeで取得してみます。
 PS C:\> $d = $UNIX_EPOCH.AddSeconds(60*60*24)
 PS C:\> $d.ToUniversalTime()
 
 1970年1月2日 0:00:00
 
 PS C:\> $d
 
 1970年1月2日 9:00:00
上記の出力の通り、一日後(60sec*60min*24h)の値を指定しAddSecondsメソッドを使用し加算後、出力した結果です。~
一日後の日時が表示されたのが確認できます。

したがって、以下の構文でUNIX時間からDateTimeに変換することができます。
 (Get-Date("1970/1/1 0:0:0 GMT")).AddSeconds(UNIX時間)
実際に7日後のUNIX時間を設定し実行したときの出力です。
 PS C:\> (Get-Date("1970/1/1 0:0:0 GMT")).AddSeconds(3600*24*7)
 
 1970年1月8日 9:00:00
 
 PS C:\> ((Get-Date("1970/1/1 0:0:0 GMT")).AddSeconds(3600*24*7)).ToUniversalTime()
 
 1970年1月8日 0:00:00

以上、PowerShellでUNIX時刻をDateTimeに変換する方法でした。

#htmlinsertpcsp(win-btm.html,win-sp.html)

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