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开始
 
天,小时,分,秒,依次类推。
 
……^——*

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/6d8155d0d39ab98908453386af0d8cb5.html