Linux / コマンド / date - 現在時刻の表示と出力形式の指定
dateは現在の日付と時刻を表示し、指定した形式で出力します。自動化スクリプトで日付文字列を作成する際に特に便利です。
表示言語や地域の規則を決めるロケールと、時差の規則であるタイムゾーンが出力に影響します。GNU版では環境変数 TZ があればその規則を使い、なければシステムの設定に従います。+形式を指定すると必要なフィールドだけを出力でき、-uを使うと協定世界時(UTC)基準で表示します。実際に時刻を設定する機能もありますが、通常の確認作業とは区別する必要があります。
基本的な文法
date [オプション] [+形式]
インストールされている実装とオプションは、配布版によって異なる場合があります。man dateで現在のシステムの説明を確認してください。
使用例
現在の日付と時刻
基本のロケールとタイムゾーンに合わせて出力します。
date
一貫した日付形式
ファイル名やログ識別子に使用する日付を年-月-日形式で表示します。
date +%Y-%m-%d
UTC時刻の確認
サーバー間のログ時刻を比較する際、タイムゾーンの差を減らします。
date -u +%Y-%m-%dT%H:%M:%SZ
表示形式とタイムゾーンを理解する
dateは現在時刻を表示したり、形式を変更することができます。次のコマンドはUTC基準の時刻を固定形式で出力しますが、日付と値は実行時ごとに異なります。
date -u '+%Y-%m-%d %H:%M UTC'
例の出力:
2026-09-28 00:00 UTC
-u を外すと、TZ環境変数が設定されていればそのタイムゾーン、なければシステム設定に従います。%Y は現代の日付なら4桁の年、%mは月、%dは日です。表示形式や表示先のタイムゾーンを選ぶだけでは、システム時刻は変わりません。システム時刻の変更は認証・ログ・予約作業に影響するため、単なる確認と区別してください。
主なオプションと形式
| オプション・形式 | 説明 |
|---|---|
+%Y-%m-%d |
年-月-日形式で出力します。 |
+%H:%M:%S |
時:分:秒を出力します。 |
-u |
UTCで出力します。 |
-I |
ISO 8601日付形式で出力します。 |
-d 文字列 |
GNU dateで指定した日付文字列を解釈して表示します。システム時刻は変更しません。 |
使用する際の注意点
date -sのようにシステム時刻を変更すると、ログ・認証・予約作業に影響を与える可能性があります。時刻設定が必要な場合は、timedatectlによる時刻・同期状態の確認 などで現在の条件を確認します。空白を含む書式文字列は '+%Y-%m-%d %H:%M' のように、一つの引数になるよう引用します。また、GNU専用オプションは他のUnix環境と差異があります。
よくある質問
dateの出力タイムゾーンは何に従いますか?
基本的にはシステムまたはTZ環境変数で指定されたタイムゾーンに従います。UTCで表示するには-uを使用します。
公式ドキュメント
オプションの正確な動作や実装による差異は、dateに関する公式文書で確認できます。




