在一般網頁里,date命令減時間方法為: 我的需求是,在指定時間上減8小時。按一般理解來看,命令寫成如下樣子(有異常錯誤的寫法): 期望結果是:23-11-2014 08:08:08 實際結果是:23-11-2014 17:08:08 所以,結果異常錯誤。同理減分鐘減小時,同樣錯誤,比如: 實際結果 ...
在一般網頁里,date命令減時間方法為:
date -d '-100 days'
我的需求是,在指定時間上減8小時。按一般理解來看,命令寫成如下樣子(有異常錯誤的寫法):
date -d "2014-11-22 08:08:08 -1 days" "+%d-%m-%Y %H:%M:%S"
期望結果是:23-11-2014 08:08:08
實際結果是:23-11-2014 17:08:08
所以,結果異常錯誤。同理減分鐘減小時,同樣錯誤,比如:
date -d "2014-11-22 08:08:08 -1 mins" "+%d-%m-%Y %H:%M:%S" date -d "2014-11-22 08:08:08 -1 hours" "+%d-%m-%Y %H:%M:%S"
實際結果:
22-11-2014 17:09:08 22-11-2014 18:08:08
起初以為是系統差異問題。經過測試,centos和ubuntu運行結果一樣異常。
所以正確寫法如下:替換減號 使用 ago
date -d "2014-11-22 08:08:08 1 hours ago" "+%d-%m-%Y %H:%M:%S" date -d "2014-11-22 08:08:08 1 mins ago" "+%d-%m-%Y %H:%M:%S"
正確結果:
22-11-2014 07:08:08 22-11-2014 08:07:08
或者:將減小時,減分鐘條件移到前端
date -d "-1 hours 2014-11-22 08:08:08" "+%d-%m-%Y %H:%M:%S" date -d "-1 mins 2014-11-22 08:08:08" "+%d-%m-%Y %H:%M:%S"
正確結果:
22-11-2014 07:08:08 22-11-2014 08:07:08