dateコマンドの使い方を完全ガイド!Linuxで日付や時刻を表示・設定する基本を解説
生徒
「Linux(リナックス)を使っているときに、今の正確な時間を確認したいのですが、どうすればいいですか?」
先生
「それなら date(デイト)コマンドを使えば一発ですよ。日付や時刻を表示するだけでなく、表示形式を自由に変えることもできるんです。」
生徒
「コマンド一つでカレンダーのような役割もしてくれるんですね!時刻の設定とかもできるんでしょうか?」
先生
「はい、管理者権限があればシステム時計の変更も可能です。初心者の方向けに、まずは基本の表示方法から丁寧に解説していきますね。」
Linuxを初めて学ぶ人や、 OS・プロセス・メモリ管理・仮想マシン・コンテナの仕組みを図解で理解したい人におすすめの定番書籍です。
試して理解 Linuxのしくみを見る※ Amazonアソシエイト広告リンク
1. dateコマンドとは?
date(デイト)コマンドは、Linux(リナックス)システムにおいて現在の「日付」や「時刻」を表示・操作するためのコマンドです。読み方はそのままで、英語で日付を意味する「Date」からきています。
Windows(ウィンドウズ)やMac(マック)であれば、画面の端に常に時計が表示されていますが、文字入力だけで操作するCUI(シーユーアイ:キャラクタユーザーインターフェース)環境では、このコマンドを打ち込んで時間を確認します。
また、単に時間を見るだけでなく、シェルスクリプト(命令をまとめたファイル)の中で「今日の日付の名前がついたファイルを作る」といった自動化の作業でも非常によく使われる、非常に重要なコマンドの一つです。
2. 現在の日付と時刻を表示する基本操作
まずは最もシンプルな使い方を見てみましょう。ターミナル(黒い画面)で date と入力してエンターキーを押すだけです。読み方は、date(デイト)です。
実行すると、現在の曜日、月、日、時刻、タイムゾーン、西暦が表示されます。Linux(リナックス)の標準的な設定では、英語表記や独特の順番で表示されることが多いですが、まずはこれが出れば成功です。
date
2026年 3月 23日 月曜日 15:52:04 JST
上記の実行結果にある「JST(ジェイエスティー)」は、読み方は日本標準時(ニホンヒョウジュンジ)といい、日本で採用されている標準的な時刻であることを示しています。サーバーの設定によっては「UTC(ユーティーシー)」、読み方は協定世界時(キョウテイセカイジ)と表示されることもあります。
3. 表示形式をカスタマイズする方法(フォーマット指定)
date コマンドの便利な点は、自分の好きな形式で日付を表示できることです。これを「フォーマット指定」と呼びます。例えば「2026/03/23」のように、スラッシュ区切りで表示したい場合に役立ちます。
書き方は、コマンドの後に「+(プラス)」記号をつけ、その後に特定の記号を組み合わせます。代表的な記号には以下のものがあります。
- %Y:西暦(4桁)
- %m:月(01-12)
- %d:日(01-31)
- %H:時(00-23)
- %M:分(00-59)
- %S:秒(00-59)
実際に、よく使われる「年月日」の形式で表示してみましょう。
date "+%Y/%m/%d %H:%M:%S"
2026/03/23 15:55:10
このように、ダブルクォーテーションで囲むことで、スペースや記号を含めた自由な形式で出力できます。これはログファイル(動作記録)に日付を記録するときなどに多用されます。
4. 特定の日付(過去や未来)を表示するオプション
date コマンドは「今」だけでなく、「明日」や「1週間前」の日付を計算して表示することも可能です。これには -d オプション(読み方はオプション)を使用します。
例えば、システムの保守作業などで「3日後の日付を知りたい」という時に、カレンダーを見なくてもコマンド一つで算出できます。人間が理解しやすい英語のフレーズで指定できるのが特徴です。
date -d "1 day ago" "+%Y-%m-%d"
2026-03-22
上記の例では「1 day ago(1日前)」を指定しています。他にも "next Monday(次の月曜日)" や "2 months later(2ヶ月後)" といった指定も可能です。非常に賢い機能ですね。
5. システムの時刻を変更する方法(ルート権限)
普段はあまり行いませんが、サーバーの時間がズレてしまった場合などに時刻を手動で設定することがあります。この操作はシステムの根本に関わるため、一般ユーザーではなく「root(ルート)」、読み方は特権管理者(トッケンカンリシャ)の権限が必要です。
時刻を設定するには -s オプションを使用します。間違えて設定すると、他のプログラムの動作に影響が出る可能性があるため、慎重に行う必要があります。
date -s "2026-03-23 16:00:00"
2026年 3月 23日 月曜日 16:00:00 JST
現在では ntp(エヌティーピー:ネットワークタイムプロトコル)という仕組みで自動的に時刻を合わせるのが一般的ですが、インターネットに繋がっていない環境などでは、このように手動で設定することがあります。
6. ハードウェアクロックとシステムクロックの違い
Linux(リナックス)には、実は2つの時計が存在します。一つはOS(オーエス:オペレーティングシステム)が管理する「システムクロック」、もう一つはパソコンの基板(マザーボード)上の電池で動いている「ハードウェアクロック」です。
date コマンドが表示・設定するのは「システムクロック」の方です。パソコンの電源を切っても時間が進み続けるのは「ハードウェアクロック」のおかげです。OSが起動する際、ハードウェアクロックの時間を読み込んでシステムクロックを合わせます。
もし、date で時間を直しても再起動すると元に戻ってしまう場合は、ハードウェアクロック自体がズレているか、電池が切れている可能性があります。これらを同期させるには hwclock(エイチダブリュークロック)という別のコマンドを使います。
7. シェルスクリプトでの実用的な活用例
プログラミング(シェルスクリプト)の世界では、date コマンドは「変数(ヘンスウ)」、読み方はデータを入れる箱に代入して使われることが多いです。
バックアップファイルを作る際に、ファイル名に日付を入れることで、いつ保存したファイルなのかを一目で判断できるようにします。初心者の方でも、以下の1行を書くだけで便利なツールが作れます。
FILENAME="backup_$(date +%Y%m%d).tar.gz"
echo $FILENAME
backup_20260323.tar.gz
$(コマンド) という書き方をすることで、コマンドの実行結果を文字として扱うことができます。このように date コマンドを使いこなせると、Linux(リナックス)での作業効率が格段にアップします。
8. タイムゾーンの確認と表示
世界中の人とやり取りするサーバーを管理する場合、今表示されている時間が「どこの国の時間か」を知ることは非常に重要です。これをタイムゾーン、読み方は時間帯(ジカンタイ)といいます。
date コマンドをそのまま打てば最後に「JST」などの略称が出ますが、より詳しくタイムゾーンの設定を確認したい場合もあります。Linux(リナックス)では、環境変数(カンキョウヘンスウ)の値を一時的に変えることで、別の国の時刻を表示させることもできます。
TZ=America/New_York date
2026年 3月 23日 月曜日 02:58:20 EDT
上記のように TZ(ティーゼット)という変数を指定して実行すると、ニューヨークの現在時刻を表示できます。海外のサーバーを操作する際には、この知識が役立ちます。
LPICレベル1の合格を目指している人や、 Linuxコマンド・シェル・ネットワーク・セキュリティの試験対策を効率よく進めたい人におすすめの定番問題集です。
Linux教科書 LPICレベル1 スピードマスター問題集を見る※ Amazonアソシエイト広告リンク
まとめ
(振り返りのまとめ)
dateコマンドの使い方を完全ガイド!Linuxで日付や時刻を表示・設定する基本を解説
生徒
「Linux(リナックス)を使っているときに、今の正確な時間を確認したいのですが、どうすればいいですか?」
先生
「それなら date(デイト)コマンドを使えば一発ですよ。日付や時刻を表示するだけでなく、表示形式を自由に変えることもできるんです。」
生徒
「コマンド一つでカレンダーのような役割もしてくれるんですね!時刻の設定とかもできるんでしょうか?」
先生
「はい、管理者権限があればシステム時計の変更も可能です。初心者の方向けに、まずは基本の表示方法から丁寧に解説していきますね。」
1. dateコマンドとは?
date(デイト)コマンドは、Linux(リナックス)システムにおいて現在の「日付」や「時刻」を表示・操作するためのコマンドです。読み方はそのままで、英語で日付を意味する「Date」からきています。
Windows(ウィンドウズ)やMac(マック)であれば、画面の端に常に時計が表示されていますが、文字入力だけで操作するCUI(シーユーアイ:キャラクタユーザーインターフェース)環境では、このコマンドを打ち込んで時間を確認します。
また、単に時間を見るだけでなく、シェルスクリプト(命令をまとめたファイル)の中で「今日の日付の名前がついたファイルを作る」といった自動化の作業でも非常によく使われる、非常に重要なコマンドの一つです。
2. 現在の日付と時刻を表示する基本操作
まずは最もシンプルな使い方を見てみましょう。ターミナル(黒い画面)で date と入力してエンターキーを押すだけです。読み方は、date(デイト)です。
実行すると、現在の曜日、月、日、時刻、タイムゾーン、西暦が表示されます。Linux(リナックス)の標準的な設定では、英語表記や独特の順番で表示されることが多いですが、まずはこれが出れば成功です。
date
2026年 3月 23日 月曜日 15:52:04 JST
上記の実行結果にある「JST(ジェイエスティー)」は、読み方は日本標準時(ニホンヒョウジュンジ)といい、日本で採用されている標準的な時刻であることを示しています。サーバーの設定によっては「UTC(ユーティーシー)」、読み方は協定世界時(キョウテイセカイジ)と表示されることもあります。
3. 表示形式をカスタマイズする方法(フォーマット指定)
date コマンドの便利な点は、自分の好きな形式で日付を表示できることです。これを「フォーマット指定」と呼びます。例えば「2026/03/23」のように、スラッシュ区切りで表示したい場合に役立ちます。
書き方は、コマンドの後に「+(プラス)」記号をつけ、その後に特定の記号を組み合わせます。代表的な記号には以下のものがあります。
- %Y:西暦(4桁)
- %m:月(01-12)
- %d:日(01-31)
- %H:時(00-23)
- %M:分(00-59)
- %S:秒(00-59)
実際に、よく使われる「年月日」の形式で表示してみましょう。
date "+%Y/%m/%d %H:%M:%S"
2026/03/23 15:55:10
このように、ダブルクォーテーションで囲むことで、スペースや記号を含めた自由な形式で出力できます。これはログファイル(動作記録)に日付を記録するときなどに多用されます。
4. 特定の日付(過去や未来)を表示するオプション
date コマンドは「今」だけでなく、「明日」や「1週間前」の日付を計算して表示することも可能です。これには -d オプション(読み方はオプション)を使用します。
例えば、システムの保守作業などで「3日後の日付を知りたい」という時に、カレンダーを見なくてもコマンド一つで算出できます。人間が理解しやすい英語のフレーズで指定できるのが特徴です。
date -d "1 day ago" "+%Y-%m-%d"
2026-03-22
上記の例では「1 day ago(1日前)」を指定しています。他にも "next Monday(次の月曜日)" や "2 months later(2ヶ月後)" といった指定も可能です。非常に賢い機能ですね。
5. システムの時刻を変更する方法(ルート権限)
普段はあまり行いませんが、サーバーの時間がズレてしまった場合などに時刻を手動で設定することがあります。この操作はシステムの根本に関わるため、一般ユーザーではなく「root(ルート)」、読み方は特権管理者(トッケンカンリシャ)の権限が必要です。
時刻を設定するには -s オプションを使用します。間違えて設定すると、他のプログラムの動作に影響が出る可能性があるため、慎重に行う必要があります。
date -s "2026-03-23 16:00:00"
2026年 3月 23日 月曜日 16:00:00 JST
現在では ntp(エヌティーピー:ネットワークタイムプロトコル)という仕組みで自動的に時刻を合わせるのが一般的ですが、インターネットに繋がっていない環境などでは、このように手動で設定することがあります。
6. ハードウェアクロックとシステムクロックの違い
Linux(リナックス)には、実は2つの時計が存在します。一つはOS(オーエス:オペレーティングシステム)が管理する「システムクロック」、もう一つはパソコンの基板(マザーボード)上の電池で動いている「ハードウェアクロック」です。
date コマンドが表示・設定するのは「システムクロック」の方です。パソコンの電源を切っても時間が進み続けるのは「ハードウェアクロック」のおかげです。OSが起動する際、ハードウェアクロックの時間を読み込んでシステムクロックを合わせます。
もし、date で時間を直しても再起動すると元に戻ってしまう場合は、ハードウェアクロック自体がズレているか、電池が切れている可能性があります。これらを同期させるには hwclock(エイチダブリュークロック)という別のコマンドを使います。
7. シェルスクリプトでの実用的な活用例
プログラミング(シェルスクリプト)の世界では、date コマンドは「変数(ヘンスウ)」、読み方はデータを入れる箱に代入して使われることが多いです。
バックアップファイルを作る際に、ファイル名に日付を入れることで、いつ保存したファイルなのかを一目で判断できるようにします。初心者の方でも、以下の1行を書くだけで便利なツールが作れます。
FILENAME="backup_$(date +%Y%m%d).tar.gz"
echo $FILENAME
backup_20260323.tar.gz
$(コマンド) という書き方をすることで、コマンドの実行結果を文字として扱うことができます。このように date コマンドを使いこなせると、Linux(リナックス)での作業効率が格段にアップします。
8. タイムゾーンの確認と表示
世界中の人とやり取りするサーバーを管理する場合、今表示されている時間が「どこの国の時間か」を知ることは非常に重要です。これをタイムゾーン、読み方は時間帯(ジカンタイ)といいます。
date コマンドをそのまま打てば最後に「JST」などの略称が出ますが、より詳しくタイムゾーンの設定を確認したい場合もあります。Linux(リナックス)では、環境変数(カンキョウヘンスウ)の値を一時的に変えることで、別の国の時刻を表示させることもできます。
TZ=America/New_York date
2026年 3月 23日 月曜日 02:58:20 EDT
上記のように TZ(ティーゼット)という変数を指定して実行すると、ニューヨークの現在時刻を表示できます。海外のサーバーを操作する際には、この知識が役立ちます。