我有一个自 Unix 纪元格式以来以毫秒为单位的日期,如何从中减去 5 分钟?
答案1
假设您的时间戳位于变量中timestamp
,并且以纪元以来的毫秒为单位:
fiveminutesbefore=$((timestamp - 5 * 60 * 1000))
这使用算术展开从您的值中减去5批60(一分钟内的秒)批1000(一秒内的毫秒)timestamp
,按照您的预期提前五分钟给出时间。
答案2
5 分钟 60 秒 1000 毫秒,每个给出 300000。
您可以使用以下命令从包含当前日期(以毫秒为单位)的变量中减去此值$(( ))
:
dd=$(($(date +'%s * 1000 + %-N / 1000000')))
ddmin5=$(($dd - 300000))
echo $ddmin5
毫秒计算来自这个答案
答案3
方法有太多:
fiveminutesbefore=$[$timestamp - 5 * 60 * 1000]
或者
fiveminutesbefore=`echo "$timestamp - 5 * 60 * 1000" | bc -l`
或者
fiveminutesbefore=`echo "$timestamp" | python -c 'import sys; t=sys.stdin.read(); print int(t) - 5 * 60 * 1000'`
ETC...
答案4
打印solaris sun os minus 10min
dt="$(date +%H:"$(( `date +%M`-10))":%S)"