在 Linux 中,我可以通过使用上个月获得
date -d "last month" '+%Y%m'
Run Code Online (Sandbox Code Playgroud)
或者
date -d "1 month ago" '+%Y%m'
Run Code Online (Sandbox Code Playgroud)
但是说,今天是 3 月 31 日,如果我在顶部运行命令,它会显示 201603,但是无论我现在在哪一天,我都想得到上个月;我该怎么做?
我可以通过使用像获取上个月的第一天/最后一天这样的解决方法来实现这一点,但我想知道有没有什么优雅的方法可以做到这一点?
date -d "-$(date +%d) days" '+%Y%m' #get last day of previous month
Run Code Online (Sandbox Code Playgroud)
小智 11
通常的智慧是使用本月的 15 号。然后减去1个月:
$ nowmonth=$(date +%Y-%m)
$ date -d "$nowmonth-15 last month" '+%Y%m'
201602
Run Code Online (Sandbox Code Playgroud)