linux的date命令使用指定時間的加減方法與異常


在一般網頁里,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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM