Shell获取高精度时间戳毫秒级甚至纳秒级的时间戳方法

发表于 LINUX 分类,标签:

在linux Shell中并没有毫秒级的时间单位,只有秒和纳秒其实这样就足够了,

因为纳秒的单位范围是(000000000..999999999),所以从纳秒也是可以的到毫秒的。

1秒=1000毫秒(ms), 1毫秒=1/1000秒(s);

1秒=1000000 微秒(μs), 1微秒=1/1000000秒(s);

1秒=1000000000 纳秒(ns),1纳秒=1/1000000000秒(s);

1秒=1000000000000皮秒 1皮秒==1/1000000000000秒。


直接上图再说吧,各位看官请

blob.png


datetime1=`date "+%s#%N"`

#获取当前时间戳和纳秒  

#例如:1475124846#521773003   

#前面是默认时间戳,单位是秒,也就是1970-0-0 0:0:0到当前时间的秒数,

#后面是当前这一秒里面毫秒

具体的date命令各种参数可以查看man,或者点击这个传送门

 Linux牛逼命令大全--date命令_Linux date 命令用法详解:显示或设置系统时间与日期

datetime2=`echo $datetime1 | cut -d"#" -f1`   #取出秒
datetime3=`echo $datetime1 | cut -d"#" -f2`   #取出纳秒
namiaostamp=$(($datetime2*1000000000+ $datetime3))
haomiaostamp=$(($datetime2*1000+`date $datetime3/1000000))

echo $datetime1
1475125194#244987872
echo $datetime2
1475125194
echo $datetime3
244987872
echo $namiaostamp 
1475125194244987872
echo $haomiaostamp 
1475125194244


大致算法就是这样吧,其实如果是纳秒级可以不用算,直接date "+%s%N"就好了,但是这里主要是说这个算法,所以可能看上去比较繁琐。

blob.png




欢迎加2000人技术QQ群一起学习探讨linux相关知识:100094104





0 篇评论

发表我的评论