Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

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「よく使われるコントロールシーケンス」 を参照してください。オプションの完全なリストは、man ページの date(1) を参照してください。

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

コントロールシーケンス詳細
%HHH フォーマットでの時間 (例: 17)。
%MMM フォーマットでの分 (例: 30)。
%SSS フォーマットでの秒 (例: 24)。
%dDD フォーマットでの日 (例: 16)。
%mMM フォーマットでの月 (例: 09)。
%YYYYY フォーマットでの年 (例: 2016)。
%Zタイムゾーンの省略形 (例: CEST)。
%F非省略形の YYYY-MM-DD フォーマットでの日付 (例: 2016-09-16)。このオプションは %Y-%m-%d と同じです。
%T非省略形の HH: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. システムの現在時刻の変更

システムの現在時刻を変更するには、root で、date コマンドに --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"