#author("2018-07-22T16:57:15+09:00","","") #navi(../) * PowerShellでUNIXTIMEから通常の日時に変換する方法 [#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)