連載
» 2017年01月12日 05時00分 UPDATE

Linux基本コマンドTips(77):【 date 】コマンド――現在の日時を表示する/変更する

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「date」コマンドです。

[西村めぐみ,@IT]
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、現在の日時を表示したり、変更したりする「date」コマンドです。

dateコマンドとは?

 「date」は、現在の日時を表示したり、設定し直したりするためのコマンドです。時刻の表示形式を指定することも可能です。


dateコマンドの書式

date [オプション]




dateコマンドの主なオプション

 dateコマンドの主なオプションは次の通りです。

短いオプション 長いオプション 意味
-d 日時 --date=日時 現在ではなく、文字列で指定した日時を表示する
-R --rfc-2822 日時をRFC2822形式で表示する(例:Mon, 07 Aug 2006 12:34:56 -0600)
-I[TIMESPEC] --iso-8601[=TIMESPEC] 日時をISO 8601フォーマットでTIMESPEC(date、hours、minutes、seconds、ns)で指定した精度で指定する。例えば、-Insでナノ秒まで表示し、無指定時は日付まで表示する
--rfc-3339=TIMESPEC 日時をRFC3339形式で表示する(TIMESPECは必須)
-rファイル --reference=ファイル ファイルの最終変更時刻を表示する
-s 日時 --set=日時 システム時刻を指定した日時に変更する。時刻省略時は「00:00:00」になる
-u --utc, --universal 協定標準時(UTC)を表示、設定する(※「-u」は他のオプションと同時に使用できない)


現在の日時を表示する

 「date」を単独で実行すると、現在の日時が表示されます。表示される日時の言語とフォーマットは、環境変数「LANG」の設定に従います。

 異なる言語で表示したい場合には、「LANG=設定 date」のように指定します。例えば、「LANG=C date」であれば、デフォルトの言語(「C」はCommonという意味で、通常は米国スタイルの英語表示)でdateコマンドが実行されます。

【※】コマンドラインで「変数名=設定値 コマンド」のように実行すると、“環境変数を指定した設定値にした状態でコマンドを実行する”という意味になります。この変数の設定は、コマンド実行時のみ有効です。



コマンド実行例

date

(現在の日時を表示する)(画面1の赤枠部分

LANG=C date

(環境変数LANGの値を「C」にしてdateコマンドを実行する。現在の日時が米国スタイルで表示される)(画面1の青枠部分


画面1 画面1 「date」で現在の日時が表示される(赤枠部分)。「LANG=C date」で日時が米国スタイルで表示される(青枠部分)


指定したフォーマットで現在の日時を表示する

 「date +フォーマット」で、指定したフォーマットで日付を表示できます。フォーマットで指定できる内容は「date --help」で確認することができます。

 例えば、「date +%F」では「4桁の年-2桁の月-2桁の日付(yyyy-mm-dd)」で表示され、「date +%Y%m%d」では「yyyymmdd」の8桁で表示されます。時刻をそれぞれ2桁で「時:分:秒」のように表示したい場合は、「date +%H:%M:%S」のように指定します。また、間に空白を入れたい場合は引用符を使います。

コマンド実行例

date +%F

(現在の日付を「yyyy-mm-dd」で表示する)(画面2の赤枠部分

date +"%Y/%m/%d %H:%M:%S"

(現在の日時を「yyyy/mm/dd HH:MM:SS」で表示する)(画面2の青枠部分


画面2 画面2 「date +%F」で「yyyy-mm-dd」形式で表示され(赤枠部分)、「date +"%Y/%m/%d %H:%M:%S"」で「yyyy/mm/dd HH:MM:SS」形式で現在の日時が表示される(青枠部分)


現在の日時を変更する

 「date -s 日時」で、現在の日時を変更することができます。root権限が必要なので、「su」コマンドでrootになるか、「sudo date -s 日時」のように「sudo」コマンド経由で実行しましょう。

 なお、NTPサーバ(タイムサーバ)と同期しているなど、自動時刻合わせを使用している場合は、dateコマンドで変更しても、同期と共に元の日時に戻ります。

コマンド実行例

date -s "2017/01/01 01:02:03"

(現在の日時を変更する)(画面3


画面3 画面3 「date -s 日時」で、現在の日時を変更できる。ただし、root権限が必要


筆者紹介

西村 めぐみ(にしむら めぐみ)

PC-9801N/PC-386MからのDOSユーザー。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。のち退社し、専業ライターとして活動を開始。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。


Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。