2011-05-09 91 views

回答

2

轉換爲時間戳(長整數),減去正確的毫秒數,重新格式化爲您需要的格式。

很難給出更多的細節,因爲你沒有指定的編程語言...

+0

啊..我用shell腳本,我的公式是這樣的 - 日期='日期「+%m /%d /%Y - %H:%M:%S」'從DATE我想減去1小時 – 2011-05-09 08:32:11

+1

您是否需要留在shel L·內聯的awk或perl腳本可以輕鬆地減去一小時,並以您需要的格式輸出。 – CoreyStup 2011-05-09 20:38:12

30

上最新版本的GNU date的下面的命令作品:

date -d '1 hour ago' "+%m/%d/%Y -%H:%M:%S" 
+0

i recieve -date:illegal option - d usage:date [-u] mmddHHMM [[cc] yy] [.SS] date [-u] [+ format] date -a [ - ] sss [ fff] – 2011-05-09 08:40:41

+0

@shamir這意味着您的日期版本不支持此選項。 – dogbane 2011-05-09 08:41:20

+0

我想出來 - 我發佈它,因爲可能你知道一些其他方式在solaris機器上做到這一點? – 2011-05-09 09:16:56

5
date -v-60M "+%m/%d/%Y -%H:%M:%S" 

DATE=`date -v-60M "+%m/%d/%Y -%H:%M:%S"` 

如果你有慶典版本4.4+您可以使用bash的內部日期打印和計算:

printf "current date: %(%m/%d/%Y -%H:%M:%S)T\n" 
printf "date - 60min: %(%m/%d/%Y -%H:%M:%S)T\n" $(($(printf "%(%s)T") - 60 * 60)) 

$(printf "%(%s)T")打印時代秒,$((epoch - 60*60))是bash-aritmetics-以秒爲單位減1小時。打印:

current date: 04/20/2017 -18:14:31 
date - 60min: 04/20/2017 -17:14:31 
+0

是的,我的操作系統不支持它,謝謝任何方式 – 2011-05-11 05:30:16

+0

這不適用於Ubuntu上的'date'。 – Flimm 2016-06-15 16:10:32

+0

@Flimm這適用於OS X,我也期待BSD – 2016-10-14 01:04:59

4

,如果你需要的時間戳。減去:

timestamp=$(date +%s -d '1 hour ago'); 
1

這項工作在我的Ubuntu 16.04 date date --date="@$(($(date +%s) - 3600))" "+%m/%d/%Y -%H:%M:%S" date版本date (GNU coreutils) 8.25