Edited at

PowershellでUnix時刻とDateTimeの相互変換

More than 3 years have passed since last update.

ぐぐってみて案外日本語の情報がないので、自分の防備録のためにもQiita投稿しておきます。

1970年1月1日 0時0分0秒のEpoch時刻から引き算足し算すればいいだけってのだけ理解してれば簡単に作れます。

Powershellの関数であれば、ログ解析なんかにも組み込めると思うのでどうぞご利用ください。

function Convert-UnixTimeToDateTime($unixTime){

$origin = New-Object -Type DateTime -ArgumentList 1970, 1, 1, 0, 0, 0, 0
$origin.AddSeconds($unixTime)
}

function Convert-DateTimeToUnixTime($dateTime){

$origin = New-Object -Type DateTime -ArgumentList 1970, 1, 1, 0, 0, 0, 0
[Int]($dateTime-$origin).TotalSeconds
}

UTC云々の部分はあえて省いてます。offsetをどうするか、という問題でしかないので、

それはこの関数を通す前後で処理しておいてください。

この考えが間違っていたら指摘をお願いします。

[参考]

Convert Unix time with PowerShell

http://stackoverflow.com/questions/10781697/convert-unix-time-with-powershell