我执行了一个计算,将当前时间戳转换为毫秒以及使用 perl 命令,如下所示:
perl -MTime::HiRes=time -MPOSIX=strftime -e '
$now = int(time() * 1000);
printf "%s.%03d\n", strftime("%H:%M:%S", localtime(int($now/1000))), ($now % 1000);'
从上面我想将输出转换为秒,我可以使用下面的例子来实现:
echo "21:48:40.596" | awk -F: '{ if (NF == 1) {print $NF} else if (NF == 2) {print $1 * 60 + $2} else if (NF==3) {OFMT = "%2.3f"; print $1 * 3600 + $2 * 60 + $3 } }'
使用上面的命令,如果我比较以秒为单位的读数,我可以使用下面的命令来获得以秒为单位的 2 个值之间的差异,同时保持毫秒:
例子:
DIFF_SEC=$(echo "78522.896 - 78520.596" | bc -l | awk '{printf("%.3f\n", $1)}')
输出:
echo $DIFF_SEC
2.300
我想从上面知道如何计算上面命令之间的差异 hh:mm:ss.milseconds
我设法弄清楚了以下内容,但是没有显示毫秒数:
DIFF=`printf '%02dh:%02dm:%02ds.%03d\n' $((DIFF_SEC/3600)) $((DIFF_SEC%3600/60)) $((DIFF_SEC%60))`
输出:
echo "$DIFF"
00h:00m:02s.000
我期待的是:
00h:00m:02s.300