[Powershell][C#]Unix TimestampをDateTimeに変換する

超まとめ

<br>
$unixTimestamp = &lt;unix timestampの値&gt;</p>
<p>$utcDate = ([DateTime]::Parse("1970/01/01 00:00:00")).addSeconds($unixTimestamp);<br>
$localDate = [TimeZoneInfo]::ConvertTimeFromUtc($utcDate, [TimezoneInfo]::Local)<br>

unix timestampはUTCなので、$localDateでunix timestampを変換して得た$utcDateをローカル時間に変換しています。
$unixTimestamp = 1516340941で実行した場合の$utcDateと$localDateはそれぞれこんな感じです。

C#で。

<br>
using System;</p>
<p>namespace jp.sevenb.Extensions<br>
{<br>
  public static class LongExtensions<br>
  {</p>
<p>    private static DateTime UNIX_EPOCH = new DateTime(1970, 1, 1, 0, 0, 0, 0);</p>
<p>    public static DateTime ParseUnixTimestamp(this long unixTimestamp)<br>
    {<br>
      return LongExtensions.UNIX_EPOCH.AddSeconds(unixTimestamp);<br>
    }<br>
  }<br>
}<br>

<br>
using System;<br>
using jp.sevenb.Extensions;</p>
<p>namespace Sample<br>
{<br>
  class Program<br>
  {<br>
    static void Main(string[] args)<br>
    {<br>
        Console.WriteLine(1516340941L.ParseUnixTimestamp());<br>
    }<br>
  }<br>
}</p>
<p>

逆バージョンはこちらで紹介しています。

コメントを残す