歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> SHELL編程

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

今天有個需求,要在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