如何从 Unix 时间戳中减去 5 分钟?

如何从 Unix 时间戳中减去 5 分钟?

我有一个自 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)"

相关内容