Unix コマンドラインから Unix タイムスタンプを日付に変換する簡単な方法はありますか?
date
動作するかもしれませんが、各要素 (月、日、年、時間など) を指定するのがかなり面倒で、適切に動作させる方法がわかりません。もっと簡単な方法があるようですが、何か見落としているのでしょうか?
ベストアンサー1
からdate
GNU コアユーティリティできるよ:
date -d "@$TIMESTAMP"
# date -d @0
Wed Dec 31 19:00:00 EST 1969
(から:BASH: Unix タイムスタンプを日付に変換する)
OS X では、 を使用しますdate -r
。
date -r "$TIMESTAMP"
代わりに を使用しますstrftime()
。シェルから直接使用することはできませんが、驚いて見る指定子は、%c
ロケールに依存した方法でタイムスタンプを表示します。
echo "$TIMESTAMP" | gawk '{print strftime("%c", $0)}'
# echo 0 | gawk '{print strftime("%c", $0)}'
Wed 31 Dec 1969 07:00:00 PM EST