2013-04-22 203 views
6

在linux中,date可以幫助我打印當前時間。如果要打印當前時間+ 1小時,我應該給我什麼選擇?在使用linux命令「date」時添加一些特定時間

+1

如果您嘗試進行時區更正,請查看'TZ'環境變量並以UTC存儲日期! – sehe 2013-04-22 08:59:35

+0

我只想獲得當前時間,並在1小時後作爲我的另一個代碼的輸入,謝謝。 – waitingkuo 2013-04-22 09:01:29

+1

好,我的錢是在最高的答案然後:)(+1由我) – sehe 2013-04-22 09:02:27

回答

24

只需使用-d(或​​)做一些數學與日期:

date -d '+1 hour' '+%F %T' 
# ^^^^^^^^^^^^ 

例如:

$ date '+%F %T' 
2013-04-22 10:57:24 
$ date -d '+1 hour' '+%F %T' 
2013-04-22 11:57:24 
#   ^
+0

我們還可以添加時間給定日期,如下所示: $ date -d「May 16 10:41:56 EDT 2017 + 12360.471 seconds」 5月16日星期二14:07:56 EDT 2017 – 2017-05-18 12:21:36

0

TZ=Asia/Calcutta date應該工作(顯然這會讓你在加爾各答的時間)。

這隻會更改此操作的時區(TZ)環境變量,它不會永久性地將您設置爲您指定的新時區。

+3

咳!當我要問時區時,將它硬編碼以匹配**您偶然發生的本地時區是......很可能不會成爲OP需要做的事情。 – sehe 2013-04-22 08:58:45

+0

這永遠不會改變任何東西@sehe,它只是改變了單個操作範圍的變量。如果他想要'歐洲/倫敦'或'美國/芝加哥',他可以替換那些。 – 2013-04-22 08:59:44

+0

我很抱歉,但這是錯誤的。它似乎在大多數時間都有效,但在某些時候**會失敗。例如,目的地TZ已經切換到夏令時,但您的夏令時沒有。 – Schnouki 2013-04-22 09:00:00

1

根據本source,你可以這樣做:

date - date ='1 hour'

0

我們可以得到它使用下面的代碼,我其中我需要遍歷從最近3個月的日期被處理的情況下,我用下面的代碼來遍歷相同

!/ bin/sh的

for i in {90..1} 
    do 
    st_dt=$(date +%F' 00:00:00' -d "-$i days") 
    echo $st_dt 
    j=$((i-1)) 
    end_dt=$(date +%F' 00:00:00' -d "-$j days") 
    echo $end_dt 
    done 
0

在shell腳本,如果我們需要增加時間,然後使用下面的命令和日期格式(日期字符串前加上TIME)

date -d"11:15:10 2017-02-05 +2 hours" +"%Y-%m-%d %H:%m:%d" 這將輸出 2017-02-05 13:15:10

相關問題