このエントリーをはてなブックマークに追加


PowerShellでUNIXTIMEから通常の日時(DateTime)に変換する方法

PowerShellのGet-Dateコマンドレットを使ってUNIX TIMEから通常の日時(DateTime)に変換例を以下に記します。


関連記事

UNIX時間からDateTimeに変換する手順

Get-DateにUNIX時間の元期(epoch)である、1970/1/1 0:0:0 GMTを設定し、
対象のUNIX時間を加算することによりDateTimeに変換することができます。

  1. 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を設定できました。
  2. $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に変換する方法でした。



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-07-22 (日) 17:00:55