bash,从午夜开始以毫秒为单位获取当前时间

use*_*171 3 bash time milliseconds

有没有办法在bash中获得当前毫秒过夜?如果有一种方法可以完全用bash来完成,那么时间戳的精确度有多好或多坏?

fed*_*qui 12

今天午夜你可以:

date -d 'today 00:00:00'
Run Code Online (Sandbox Code Playgroud)

在UNIX邮票中:

date -d 'today 00:00:00' "+%s"
Run Code Online (Sandbox Code Playgroud)

所以,如果你想要有所作为,那么:

midnight=$(date -d 'today 00:00:00' "+%s")
now=$(date "+%s")
diff_mills=$(( ($now - $midnight) * 1000 ))
Run Code Online (Sandbox Code Playgroud)

as %s表示秒,我们必须*1000得到毫秒.


使用%N(纳秒):

midnight=$(date -d 'today 00:00:00' "+%s.%N")
now=$(date "+%s.%N")
diff_mills=$(echo "( $now - $midnight ) * 1000" | bc)
Run Code Online (Sandbox Code Playgroud)

  • 为了获得更好的精度,你可以使用`+%N`来获得纳秒. (3认同)