2.2. date コマンドの使用

date ユーティリティーはすべての Linux システムで利用可能で、現在の日時の表示および設定を可能とします。カスタマイズされた形式でシステムクロックについての詳細情報を表示するためにスクリプト内で使われることが多くあります。
タイムゾーンの変更またはシステムクロックとリモートサーバーとの自動同期を有効にする方法については、timedatectl コマンドの使用」 を参照してください。

2.2.1. 現在の日時の表示

現在の日時を表示するには、date コマンドをオプションなしで実行します。
date
これで曜日、日付、ローカルタイム、タイムゾーンの省略形、年が表示されます。
デフォルトでは、date コマンドはローカルタイムを表示します。UTC で時間を表示するには、--utc または -u のオプションをつけてこのコマンドを実行します。
date --utc
表示される情報のフォーマットをカスタマイズするには、+"format" オプションをコマンドラインに追加します。
date +"format"
format例2.6「現在の日時の表示」 にあるように、サポートされる 1 つまたは複数のコントロールシーケンスに置き換えます。よく使われるフォーマットオプションのリストについては、表2.1「よく使われるコントロールシーケンス」 を参照してください。また、これらのオプションの完全なリストは、date(1) man ページを参照してください。

表2.1 よく使われるコントロールシーケンス

コントロールシーケンス詳細
%HHH フォーマットでの時間 (例: 17)。
%MMM フォーマットでの分 (例: 30)。
%SSS フォーマットでの秒 (例: 24)。
%dDD フォーマットでの日付 (例: 16)。
%mMM フォーマットでの月 (例: 09)。
%YYYYY フォーマットでの年 (例: 2013)。
%Zタイムゾーンの省略形 (例: CEST)。
%FYYYY-MM-DD フォーマットでの完全な日付 (例:2013-09-16)。このオプションは %Y-%m-%d と同じです。
%THH:MM:SS フォーマットでの完全な時間 (例: 17:30:24)。このオプションは %H:%M:%S と同じです。

例2.6 現在の日時の表示

現在の日付とローカル時間を表示するには、シェルプロンプトで以下を入力します。
~]$ date
Mon Sep 16 17:30:24 CEST 2013
UTC で現在の日時を表示するには、シェルプロンプトで以下を入力します。
~]$ date --utc
Mon Sep 16 15:30:34 UTC 2013
date コマンドの出力をカスタマイズするには、以下を入力します。
~]$ date +"%Y-%m-%d %H:%M"
2013-09-16 17:30

2.2.2. 現在の時刻の変更

現在の時刻を変更するには、rootdate コマンドを --set または -s オプションと共に実行します。
date --set HH:MM:SS
HH は時間に、MM は分に、SS は秒にすべて 2 桁の数字で置き換えます。
デフォルトでは、date コマンドはシステムクロックをローカルタイムに設定します。システムクロックを UTC に設定するには、このコマンドを --utc または -u オプションで実行します。
date --set HH:MM:SS --utc

例2.7 現在の時刻の変更

現在の時刻を午後 11 時 26 分に変更するには、root で以下のコマンドを実行します。
~]# date --set 23:26:00

2.2.3. 現在の日付の変更

現在の日付を変更するには、rootdate コマンドを --set または -s オプションと共に実行します。
date --set YYYY-MM-DD
YYYY は 4 桁の年に、MM は 2 桁の月に、DD は 2 桁の日付に置き換えます。
現在の時間を指定せずに日付を変更すると、時間が 00:00:00 に設定されることに注意してください。

例2.8 現在の日付の変更

現在の日付を 2013 年 6 月 2 日に変更し、現在の時間 (11:26 p.m.) を維持するには、root で以下のコマンドを実行します。
~]# date --set 2013-06-02 23:26:00