date コマンド Tips
date
コマンドの使い方を定期的に調べている気がするので、よく使うものをメモしておく- Mac にインストールされている BSD 版と Linux にインストールされている GNU coreutils 版でオプションが異なる場合があるので注意
- 正確には Linux にインストールされているからといって GNU coreutils 版ではない
date
コマンドという場合もある man date
とかで確認すると吉
- 正確には Linux にインストールされているからといって GNU coreutils 版ではない
- この記事では、明記していない限り、どちらのバージョンでも使用可能な方法を記載する
現在時刻を出力
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) からの経過秒数。いわゆる unixtimedate "+%Y/%m/%d %H:%M:%S"
ISO 8601 形式で出力
- https://www.iso.org/iso-8601-date-and-time-format.html
https://wiki.suikawiki.org/n/ISO%208601%E3%81%AE%E6%97%A5%E4%BB%98%E5%BD%A2%E5%BC%8F
date "+%FT%TZ" # UTC date -u "+%FT%TZ"
RFC 3339 形式で出力
- https://datatracker.ietf.org/doc/html/rfc3339
- https://tex2e.github.io/rfc-translater/html/rfc3339.html
https://wiki.suikawiki.org/n/RFC%203339%E3%81%AE%E6%97%A5%E4%BB%98%E5%BD%A2%E5%BC%8F
date -u "+%FT%T+00:00"
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/"