#author("2018-07-22T17:00:55+09:00","","")
#navi(../)
* PowerShellでUNIXTIMEから通常の日時(DateTime)に変換する方法 [#i61c2233]
PowerShellのGet-Dateコマンドレットを使ってUNIX TIMEから通常の日時(DateTime)に変換例を以下に記します。
#contents
#htmlinsert(win_ads_top.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に変換する方法でした。
//#htmlinsert(win_ads_btm.html)