GNU Core Utilities/date
date
コマンドは、現在の日時を表示または設定するコマンドです。GNU coreutils に含まれており、Linux では GNU 版が、FreeBSD では BSD 版が提供されています。基本的な動作は共通していますが、書式指定オプションや日付計算の機能に違いがあります。
基本的な使い方
編集date
現在の日時を表示します。
主なオプション(GNU coreutils 版)
編集主なオプション オプション 説明 +FORMAT
指定したフォーマットで日時を表示 -d, --date=STRING
指定した日時を基に日時を表示 -u, --utc
UTC(協定世界時)で表示 --rfc-3339=TYPE
RFC 3339 形式で日時を表示 -s, --set=STRING
指定した日時にシステム時刻を設定(root 権限が必要)
例
編集現在の日時を表示
編集date
- 出力例
Mon Jan 31 12:34:56 JST 2025
指定フォーマットで日時を表示
編集date "+%Y-%m-%d %H:%M:%S"
- 出力例
2025-01-31 12:34:56
昨日の日付を表示
編集date -d "yesterday"
- 出力例
Sun Jan 30 12:34:56 JST 2025
1週間後の日付を表示
編集date -d "next week"
UTC(協定世界時)で日時を表示
編集date -u
システム時刻を設定(root 権限が必要)
編集date -s "2025-02-01 00:00:00"
FreeBSD 版との違い
編集FreeBSD でも date
コマンドは提供されていますが、GNU coreutils 版といくつか違いがあります。
主な違い:
編集-d
オプションの代替- FreeBSD の
date
には-d
オプションがない。 - 代わりに
-v
を使って日付を計算できる。
date -v-1d # 1日前 date -v+1w # 1週間後
- FreeBSD の
-s
オプションの代替- FreeBSD では
date
でシステム時刻を設定する場合、-s
ではなくYYYYMMDDHHMM.SS
形式を使う。
date 202502010000.00
- FreeBSD では
- GNU coreutils 版を FreeBSD で使う方法
coreutils
パッケージをインストールするとgdate
という名前で GNU 版date
が使える。
pkg install coreutils gdate -d "yesterday"
詳しくは、それぞれの環境で man date
を確認してください。