[Linux] shell で月末の日付を取得する
Mac (BSD系) と Linux (GNU系) ではオプションが異なります。ここでは Linux 向けのオプションを扱います。Mac 向けはこちら。
日付フォーマット
フォーマット指定し、年(%Y)、月(%m)、日(%d)、時(%H)、分(%M)、秒(%S)で表すことができます。
date '+%Y%m%d'
20230201
date '+%Y-%m-%d'
2023-02-01
date '+%Y-%m-%d %H:%M:%S'
2023-02-01 01:05:45
日付の計算
日時を計算するには -d オプションで指定ができます。文章のように書くことが可能です。
date +'%Y-%m-%d' -d"1 day"
2023-02-02
date +'%Y-%m-%d' -d"1 day ago"
2023-01-31
date +'%Y-%m-%d' -d"1 month"
2023-03-01
date +'%Y-%m-%d' -d"1 year"
2024-02-01
月末の出し方
月末を出すには、1日の前日は月末となることを利用します。
date +'%Y-%m-%d' -d"1 month `date +'%Y-%m-01'` 1 days ago"
2023-02-28
date +'%Y-%m-%d' -d"2 month `date +'%Y-%m-01'` 1 days ago"
2023-03-31