以下の内容はhttp://sonic64.com//2003-10-29.htmlより取得しました。


Landscape トップページ | < 前の日 2003-10-28 2003-10-29 次の日 2003-10-30 >

Landscape - エンジニアのメモ 2003-10-29

date コマンドって超便利


* date コマンドって超便利

この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [Linux]

date --date で書式を指定すれば、自由自在に日付計算ができる。一か月前とか18年前とか5日後とかの日付や曜日を簡単に求められる。また、+%Y などの出力書式文字列と同時に使うこともできるので、日付と時刻を好きな形式で整形して文字列として出力できる。

JM 読んでたらしっかり書いてあった。
date date.1 in GNU_sh-utils
http://www.linux.or.jp/JM/html/GNU_sh-utils/man1/date.1.html

perl の Date::Calc モジュールも調べてみたんだけど、
一行プログラムを書くときは date コマンドの方が使いやすそう。

- YYYY-mm-dd や YYYYmmdd 文字列を得る

%F で YYYY-mm-dd 文字列を得ることができる。数字が一桁の場合はゼロ詰めされる。%Y-%m-%d と書いても同じ。
%F  same as %Y-%m-%d

$ date +%F
2004-06-24

ハイフン - を入れない YYYYmmdd 文字列がほしいなら、%Y%m%d と書けばよい。
$ date +%Y%m%d
20040624

- HH:MM:SS 文字列を得る

時分秒がほしいなら、%T を使う。数字が一桁の場合はゼロ詰めされる。コロンを入れたくないなら、%H%M%S と書けばよい。
$ date +%T
10:50:02

$ date +%H%M%S
105007

- apache のログを grep するために、一か月前の月名と西暦を得る

$ date --date '1 month ago' +%b/%Y:
Sep/2003:
ちなみに apache のログはこんな感じ。
10.3.31.91 - - [29/Oct/2003:09:40:53 +0900] "POST /cgi-bin/hiroaki/bad.cgi/read HTTP/1.1" 500 615

- 10日後

$ date --date '10day' +%Y%m%d
20031108

- 「・・・15年ぶりだね」

$ date --date '15 year ago'
Wed Sep 13 15:48:42 JST 2000

注意。上記の例は結果を2000年9月13日にしたいがために、事前に以下のコマンドを実行してシステムクロックを変更してあります。
# date --set 2015-09-13

- ago の位置で結果が変わる

ago より前の指定を現在から引き算しているようだ。複雑なのであんまり深追いしたくないな。
$ date --date '4year ago 2month 5day 2hour 8minute 58second'
Mon Jan  3 18:03:24 JST 2000

$ date --date '4year 2month ago 5day 2hour 8minute 58second'
Fri Sep  3 18:03:31 JST 1999





以上の内容はhttp://sonic64.com//2003-10-29.htmlより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14