date コマンド Tips


  • date コマンドの使い方を定期的に調べている気がするので、よく使うものをメモしておく
  • Mac にインストールされている BSD 版と Linux にインストールされている GNU coreutils 版でオプションが異なる場合があるので注意
    • 正確には Linux にインストールされているからといって GNU coreutils 版ではない date コマンドという場合もある
    • man date とかで確認すると吉
  • この記事では、明記していない限り、どちらのバージョンでも使用可能な方法を記載する

現在時刻を出力

date

UTC: Coordinated Universal time で現在時刻を出力

  • -u オプションで UTC になる

    date -u

出力フォーマットのカスタマイズ

  • "+hoge" という形でフォーマットを指定できる
  • 使用可能なフォーマット書式の詳細は man strftime 等で確認すると良い
  • %Y: 年数を 4桁 表示
  • %m: 月をゼロパディングで 2桁 表示
  • %d: 日をゼロパディングで 2桁 表示
  • %H: 時をゼロパディングで 2桁 表示
  • %M: 分をゼロパディングで 2桁 表示
  • %S: 秒をゼロパディングで 2桁 表示
  • %F: %Y-%m-%d と同じ
  • %T: %H:%M:%S と同じ
  • %s: Epoch 1970-01-01 00:00:00 +0000 (UTC) からの経過秒数。いわゆる unixtime

    date "+%Y/%m/%d %H:%M:%S"

ISO 8601 形式で出力

RFC 3339 形式で出力

unixtime で現在時刻を出力

date "+%s"

unixtime を UTC に変換

BSD

date -r 1627751460

# UTC
date -r 1627751460 -u

# ISO 8601 UTC
date -r 1627751460 -u "+%FT%TZ"

GNU coreutils

date -d @1627751460

# UTC
date -d @1627751460 -u

# ISO 8601 UTC
date -d @1627751460 -u "+%FT%TZ"

この記事を試した環境

BSD

% sw_vers
ProductName:    macOS
ProductVersion: 11.4
BuildVersion:   20F71

GNU Coreutils

$ uname -a
Linux ip-172-31-28-104.ap-northeast-1.compute.internal 4.14.232-177.418.amzn2.x86_64 #1 SMP Tue Jun 15 20:57:50 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
$ cat /etc/os-release 
NAME="Amazon Linux"
VERSION="2"
ID="amzn"
ID_LIKE="centos rhel fedora"
VERSION_ID="2"
PRETTY_NAME="Amazon Linux 2"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2"
HOME_URL="https://amazonlinux.com/"