歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> SHELL編程 >> HP UNIX shell得到5分鐘前的時間

HP UNIX shell得到5分鐘前的時間

日期:2017/3/1 9:59:26   编辑:SHELL編程
今天有個需求,要在hp unix 上用shell 取 5分鐘前的時間。

找了度娘,古哥 問了老半天 都沒我想要的答案。

1.本來想用 linux 的 date -d 來解決,沒想到 unix上沒有這個 -d 選項。

2.用date +%s-300|bc ,得到5分鐘前的時間毫秒數,但是在毫秒轉 年月日 上,不知道怎麼轉了。

3. 又想到用awk,來實現,發現比較麻煩,又想到gawk 裡有自帶的時間函數:system() ,mktime , strtime 就可以解決,可是服務器上只有awk,沒有gawk.



各種無奈中。。。。。

折騰老半天,在一位網友的熱心幫助下,總算解決了,現貼出來,供大家參考

#得到年月日 時分秒

ymdhmis=`perl -e "print sprintf '%04d-%02d-%02d %02d:%02d:%02d',(localtime(time()-300))[5]+1900,(localtime(time()-300))[4]+1,(localtime(time()-300))[3],(localtime(time()-300))[2],(localtime(time()-300))[1],(localtime(time()-300))[0]"`
echo $ymdhmis



#得到年月日
ymd=`perl -e "print sprintf '%04d-%02d-%02d',(localtime(time()-300))[5]+1900,(localtime(time()-300))[4]+1,(localtime(time()-300))[3]"`
echo $ymd



'%04d-%02d-%02d %02d:%02d:%02d' 這是按格式輸出 %04d 代表4位 年 ,%02d代表2位

(localtime(time()-300))[5]+1900 當前時間減300秒,也就是前5分鐘,後面的+1900,是說時間是從1900年開始算。

(localtime(time()-300))[4]+1 月份從1開始

天,小時,分,秒,依次類推。

……^——*
Copyright © Linux教程網 All Rights Reserved