PowerShellのGet-Dateコマンドレットを使ってUNIX TIMEから通常の日時(DateTime)に変換例を以下に記します。
Get-DateにUNIX時間の元期(epoch)である、1970/1/1 0:0:0 GMTを設定し、
対象のUNIX時間を加算することによりDateTimeに変換することができます。
$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を設定できました。
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に変換する方法でした。