上个月的最后一个日期 - Bash

Sam*_*dio 1 unix linux bash shell

我想获取上个月的最后日期,我使用的代码是 date -d "$(2022-04-30 +%Y%m01) -1 month" +%Y-%m-%d. 我得到的输出是 2022-04-24 而不是 2022-03-31。我使用的是 Debian Linux。

ufo*_*lot 6

# last day of last month
date -d "$(date +%d) days ago" +%Y-%m-%d
# or
date -d "-$(date +%d) days" +%Y-%m-%d

# last day of this month
date -d "$(date +%d) days ago month" +%Y-%m-%d
# or
date -d "-$(date +%d) days month" +%Y-%m-%d
Run Code Online (Sandbox Code Playgroud)