Mac はBSDベースのOSなので、
Redhat系のコマンドと少し違っています。
日付を取得する「date」コマンドで
つまづいてしまったので、
コマンドのオプションをまとめてみました。
Mac のDateコマンド
以下のオプションがあるようです。
$ date ?
date: illegal time format
usage: date [-jnRu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
[-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]
ひとつずつ、整理してみました。
-j
システムの日付は変更せず、指定された日付を出力するオプション
*単体では機能しない
-n
実行環境の時刻のみ変更するオプション
-r
秒指定で日時を受け付けるオプション
$ date -r 10
1970年 1月 1日 木曜日 09時00分10秒 JST
*1970/1/1 09:00から計算される
-u
UTCの日時を表示するオプション
*オプションをつけないと、実行環境のタイムゾーンを参照して表示される
$ date -u
2018年 3月23日 金曜日 08時50分58秒 UTC
$ date
2018年 3月23日 金曜日 17時50分59秒 JST
-R
RFC2822形式(インターネットメッセージフォーマット)で出力するオプション
$ date -R
Fri, 23 Mar 2018 17:52:15 +0900
-f
任意のフォーマットで日時を受け付けるオプション
$ date -j -f "%Y %m/%d %H:%M:%S" "2020 01/01 12:15:00"
2020年 1月 1日 水曜日 12時15分00秒 JST
-v[+|-]val[ymwdHMS]
日付を調整するオプション
-v+1y 1年後
-v+1m 1ヶ月後
-v+1w 1週間後
-v+1d 1日後
-v+1H 1時間後
-v+1M 1分後
-v+1S 1秒後
-v-1y 1年前
-v-1m 1ヶ月前
-v-1w 1週間前
-v-1d 1日前
-v-1H 1時間前
-v-1M 1分前
-v-1S 1秒前
$ date
2018年 3月26日 月曜日 17時37分11秒 JST
$ date -v+1d
2018年 3月27日 火曜日 17時37分12秒 JST
+format
任意のフォーマットで出力するオプション
+”%Y-%m-%dT%H:%M:%S (%w)”
$ date +"%Y-%m-%dT%H:%M:%S (%w)"
2018-03-23T17:43:48 (5)
-d, -t
この2つは、時間設定オプションのようですが、よくわかりませんでした。
組み合わせ例
オプションを色々使って、
2020/1/1 の翌日をY-m-d H:M の形式で出力する
$ date -v+1d -j -f "%Y %m/%d %H:%M:%S" "2020 01/01 12:15:00" +"%Y-%m-%d %H:%M"
2020-01-02 12:15
コメントを書く