Redhat系OSのdateコマンドを使いこなす

NO IMAGE

以前、Macのdateコマンドをまとめましたので、
今回は、Redhat系OSのdateコマンドを
まとめてみました。

Redhat系OSのDateコマンド

以下のオプションがあるようです。

$ date --help
Usage: date [OPTION]... [+FORMAT]
or:  date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
Display the current time in the given FORMAT, or set the system date.
-d, --date=STRING
-f, --file=DATEFILE
-r, --reference=FILE
-R, --rfc-2822
--rfc-3339=TIMESPEC
-s, --set=STRING
-u, --utc, --universal
--help
--version

ひとつずつ、整理してみました。

-d

システムの日付は変更せず、指定された日付を出力するオプション

$ date -d "2018-01-01 12:00:00"
Mon Jan  1 12:00:00 UTC 2018
$ date --date='@2147483647'
Tue Jan 19 03:14:07 UTC 2038

-f

日付を記載したファイルに記載された値を日時形式で出力するオプション
※日付を記載したファイルを作成するコマンドも参考に記載しています

$ cat << EOF >> 2018date.txt
> 2018-01-01 12:00
> Wed Apr  4 17:31:34 JST 2018
> EOF
$ cat 2018date.txt
2018-01-01 12:00
Wed Apr  4 17:31:34 JST 2018
$ date -f ./2018date.txt
Mon Jan  1 12:00:00 UTC 2018
Wed Apr  4 08:31:34 UTC 2018

-r

指定したファイルの最終更新日時を出力するオプション

$ date -r ./test.txt
Fri Nov 17 08:09:56 UTC 2017

-R

RFC2822形式(インターネットメッセージフォーマット)で出力するオプション

$ date -R
Fri, 06 Apr 2018 05:42:38 +0000

-s

指定したフォーマットで時間を設定するオプション
(試していません。。。)

-u

UTCの日時を表示するオプション

$ date -u
Fri Apr  6 05:14:53 UTC 2018

+format

任意のフォーマットで出力するオプション

+"%Y-%m-%dT%H:%M:%S (%w)"

$ date +"%Y-%m-%dT%H:%M:%S (%w)"
2018-03-23T17:43:48 (5)

# date -u -d "2018-01-01 12:00:00"
Mon Jan  1 12:00:00 UTC 2018

TZ

タイムゾーンを指定する

$ TZ=Asia/Tokyo date
Fri Apr  6 14:28:02 JST 2018

組み合わせ例

日本時間で、2020/1/1 の翌日+1時間後をY-m-d H:M:Sの形式で出力する

$ TZ=Asia/Tokyo date -d '1 day 1hours ago 2020-01-01 12:15:00' +"%Y-%m-%d %H:%M:%S"
2020-01-02 11:15:00

日本時間で、2020/1/1 の前日+1時間前をY-m-d H:M:Sの形式で出力する

$ TZ=Asia/Tokyo date -d '1 day ago 1hours ago 2020-01-01 12:15:00' +"%Y-%m-%d %H:%M:%S"
2019-12-31 11:15:00

日本時間で、現在時刻から1分前の日時を表示する

$ TZ=Asia/Tokyo date -d '1 minutes ago' '+%Y-%m-%d %H:%M'
2018-04-04 17:31

UTC時間で、現在時刻から1分前の日時を表示する

$ TZ=UTC date -d '1 minutes ago' '+%Y-%m-%d %H:%M'
2018-04-04 08:31

ツールカテゴリの最新記事