date コマンド

目次

概要

date - 日時を表示・設定する

コマンドライン

date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

対象バージョン

説明

引数無しで実行すると現在の時刻を表示します。

$ date
Wed Aug  6 14:53:47 UTC 2025

環境変数 TZ で時間帯(タイムゾーン)を指定することができます。日本の場合は Asia/Tokyo となります。

$ export TZ=Asia/Tokyo
$ date
Wed Aug  6 23:54:26 JST 2025

+FORMAT でフォーマットを指定できます。詳細は フォーマット を参照してください。

$ date "+%Y-%m-%d %H:%M:%S"
2025-12-31 23:59:59

-s オプションで現在時刻を設定することができます。

# date -s "2025-12-31 23:59:59"

UNIX時間(1970年1月1日 00:00:00 からの秒数)を表示したり、日時に変換することもできます。

$ TZ= date "+%s"
1767225599
$ TZ= date -d "@1767225599"
Wed Dec 31 23:59:59 UTC 2025

オプション

表示する日時指定

-d, --date=STRING
STRING で指定された日時を表示します。
$ date -d "2025/12/31 12:59:59"        # 2025/12/31 12:59:59 の日時を表示
$ date -d "yesterday"                  # 昨日
$ date -d "tomorrow"                   # 明日
$ date -d "2 days"                     # 2日後
$ date -d "2 days ago"                 # 2日前
$ date -d "next Monday"                # 次の月曜日
$ date -d "last Monday"                # 前の月曜日
$ date --date="@1767225599"            # UNIX時間(1970/1/1 00:00:00からの秒数)を日時に変換
-f, --file=DATEFILE
DATEFILE に記述された各行を --date オプションの STRING と見なして実行します。
$ cat example.txt
yesterday
2 days
$ date -f example.txt
Tue Aug  5 14:52:58 UTC 2025
Fri Aug  8 14:52:58 UTC 2025
-r, --reference=FILE
FILE で指定したファイルの最終更新時刻を表示します。
$ date -r example.txt
Wed Dec 31 23:59:59 JST 2025

出力フォーマット

-u, --utc, --universal
時間帯を UTC(Coordinated Universal Time) で表示します。未指定時は環境変数 TZ で指定した時間帯に従います。
$ date -u
Wed Dec 31 23:59:59 PM UTC 2025
-I[FMT], --iso-8601[=FMT]
日時を FMT に従って ISO-8601 フォーマット(2025-12-31T23:59:59,999999999+00:00)で出力します。
$ date -I                  # 例: 2025-12-31
$ date -Idate              # 例: 2025-12-31
$ date -Ihours             # 例: 2025-12-31T23+09:00
$ date -Iminutes           # 例: 2025-12-31T23:59+09:00
$ date -Iseconds           # 例: 2025-12-31T23:59:59+09:00
$ date -Ins                # 例: 2025-12-31T23:59:59,999999999+09:00
--rfc-3339=FMT
RFC 3339 フォーマットで出力します。
$ date --rfc-3339=date           # 例: 2025-12-31
$ date --rfc-3339=seconds        # 例: 2025-12-31 23:59:59+09:00
$ date --rfc-3339=ns             # 例: 2025-12-31 23:59:59.999999999+09:00
-R, --rfc-email
E-Mail で使用される RFC 5322 フォーマットで表示します。
$ date -R
Wed, 31 Dec 2025 23:59:59 +0900

日時設定

-s, --set=STRING
日時を設定します。
# date -s "2025-12-31 23:59:59"

メッセージ

--help
ヘルプを表示して終了します。
--version
バージョン情報を表示して終了します。
--debug
標準エラー出力にデバッグメッセージを出力します。

その他

--resolution
時刻の精度を表示します。
$ date --resolution
0.000000001

フォーマット