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 版といくつか違いがあります。

主な違い:

編集
  1. -d オプションの代替
    • FreeBSD の date には -d オプションがない。
    • 代わりに -v を使って日付を計算できる。
    date -v-1d  # 1日前
    date -v+1w  # 1週間後
    
  2. -s オプションの代替
    • FreeBSD では date でシステム時刻を設定する場合、-s ではなく YYYYMMDDHHMM.SS 形式を使う。
    date 202502010000.00
    
  3. GNU coreutils 版を FreeBSD で使う方法
    • coreutils パッケージをインストールすると gdate という名前で GNU 版 date が使える。
    pkg install coreutils
    gdate -d "yesterday"
    

詳しくは、それぞれの環境で man date を確認してください。