1. 程式人生 > >linux的date命令使用指定時間的加減方法與異常

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

fff 前端 spa -c eight lin 網頁 測試 code

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

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