Ubuntu

在 Ubuntu 16、20 上按日期計算錯誤的日期

  • November 21, 2021

由於您在下面看到的內容,日期計算發生了最奇怪的事情;請注意,在 10 月 31 日加上一個月會到 12 月!這不可能?我在 Ubuntu 16 和 20 上遇到了同樣的問題。這個問題還會導致我的 shell 腳本給出錯誤的日期,所以它不僅僅是 cron 調度程序。

root@ubuntugc:/home/miuser# date -d "20210930+1 month" +%Y-%m-%d
2021-10-30
root@ubuntugc:/home/miuser# date -d "20211030+1 month" +%Y-%m-%d
2021-11-30
root@ubuntugc:/home/miuser# date -d "20211031+1 month" +%Y-%m-%d
2021-12-01

這就是date工作原理,當添加1 month它時只會增加一個月,在您的情況下,2021-11-31這是一個不存在的日期,因此它將結果向前移動一天到有效日期(2021-12-01)。從coreutils 文件

單位中的模糊可能會導致相關項目出現問題。例如,“2020-07-31 -1 月”可能計算為 2020-07-01,因為 2020-06-31 是無效日期。為了更可靠地確定上個月,您可以要求當月 15 日之前的月份。例如:

引用自:https://unix.stackexchange.com/questions/675503