3.2. date コマンドの使用

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

3.2.1. 現在の日時の表示

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

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

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

例3.6 現在の日時の表示

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

3.2.2. 現在の時刻の変更

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

例3.7 現在の時刻の変更

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

3.2.3. 現在の日付の変更

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

例3.8 現在の日付の変更

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