Date
為什麼 Unix 日期在 2 到 3 個月之間存在差異
這怎麼可能,我該如何處理?我正在製作依賴於 Unix 的備份腳本,
date
並發現了一個有趣的錯誤:[root@web000c zfs_test]# date +%y-%m-%d --date='2 months ago' 14-04-01 [root@web000c zfs_test]# date +%y-%m-%d --date='3 months ago' 14-02-28 [root@web000c zfs_test]# date Sun Jun 1 00:08:50 CEST 2014
由於夏令時(夏令時),您會看到這種行為。
因為您目前處於夏令時,您的時鐘提前一小時,當您在 6 月 1 日午夜剛過時要求三個月前,時間最終“提前”一小時,因為它不是夏令時三幾個月前。
GNU 日期文件建議在分別詢問相對日期或月份時,使用中午 12:00 和每月 15 日作為起點來解決此問題。例如:
date +%y-%m-%d --date="$(date +%Y-%m-15) -3 month"