1. ホーム
  2. bash

[解決済み] Unixタイムスタンプを日付文字列に変換する

2022-04-28 20:49:49

質問

UnixのタイムスタンプをUnixのコマンドラインから日付に変換する、手軽でワンライナーな方法はありますか?

date はうまくいくかもしれませんが、各要素(月、日、年、時間など)を指定するのがかなり厄介で、どうすればうまく動作するのかがわからないのです。もっと簡単な方法があるように思うのですが、私は何かを見逃しているのでしょうか?

どのように解決するのですか?

date から GNU coreutils することができます。

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