在UNIX中如何将时间毫秒数转换为datestring如下:
19-FEB-12 16-FEB-12 05-AUG-09
我需要这个比较这些date与服务器上的当前时间。
从时代开始,将日期转换为秒数:
date --date="19-FEB-12" +%s
当前时代:
date +%s
所以,由于你的日期是过去的:
NOW=`date +%s` THEN=`date --date="19-FEB-12" +%s` let DIFF=$NOW-$THEN echo "The difference is: $DIFF"
使用BSD的date
命令,你需要
$ date -j -f "%d-%B-%y" 19-FEB-12 +%s
与GNU的区别date
:
-j
防止date
尝试设置时钟 -f
明确设置 -d
) 这是使用GNU awk
的一种方法。 跑步:
awk -f script.awk file
script.awk
内容:
BEGIN { n = systime() FS="-" } { t = mktime(sprintf("%d %d %d %d %d %d", "20" $3, convert($2), $1, 0, 0, 0)) printf "%.1f days ago\n", (n - t) / 60 / 60 / 24 } function convert(m) { return(((index("JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC", m) - 1) / 3) + 1) }
结果:
358.6 days ago 361.6 days ago 1286.6 days ago