GNU dateが使用可能であることが前提
現在日付取得
1 2 | # 結果 2015年 9月 14日 月曜日 17:00:11 JST date |
フォーマット指定
date +"format"で指定+の位置は""の内と外どっちもいける?
1 2 3 4 5 | # 結果 2015/09/14 17:09:48 date + "%Y/%m/%d %H:%m:%S" # 結果 2015年09月14 17時09分48秒 date + "%x %X" |
以下フォーマット
そこそこ自由は利く模様
%Y 年
%m 月
%d 日
%H 時
%m 分
%S 秒
%w 週(日,月... 0,1...)
%F yyyy-MM-dd
%D yy/MM/dd
%T HH:mm:ss
%x yyyy年MM月dd日(ロケールの日付表現)
%X HH時mm分ss秒(ロケールの時間表現)
オプション -d で文字列から日付へ変換したり日付の加減算が可能
date "d yyyyMMdd"環境にもよると思うがわりと融通が利く模様
yyyy/MM/dd
yyyy-MM-dd
yyyyMMdd
形式なら変換可能だった
1 2 | # 結果 2015年 9月 13日 日曜日 18:53:35 JST date "d 2015/02/01" |
指定した文字列から、日付を加減算して取得する処理
これを知りたかった!!文字列"2010/03/02"から一年引いて二ヶ月足して五日引いてみた例
1 2 | # 結果 2009/04/27 date "-d 2010/03/02 1 year ago 2 months 5 days ago" "+%Y%m%d" |
せっかくなので月末日の取得処理も書いとく
2024/06/30 の月末日を取得した例1 2 3 | # 結果 2024-06-30 dt= "2024/06" echo ` date "-d $dt/01 1 months 1 days ago" "+%F" ` |
手順としては年月を変数に持たして"+01"をくっつけて1ヶ月後の1日前を計算している感じです。
スラなしの方法が思いつきませんでした。