Ubuntu
在 Ubuntu 16、20 上按日期計算錯誤的日期
由於您在下面看到的內容,日期計算發生了最奇怪的事情;請注意,在 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 日之前的月份。例如: