Linux中是否有shell命令以毫秒为单位获取时间?
当前回答
用时间和时区显示日期
日期+"%d-%m-%Y %T "。% N % Z”
输出22
其他回答
date +%s%N返回秒数+当前纳秒。
因此,echo $(($(date +%s%N)/1000000))就是您所需要的。
例子:
$ echo $(($(date +%s%N)/1000000))
1535546718115
Date +%s返回自epoch以来的秒数,如果有用的话。
在OS X上,date不支持%N标志,我建议使用Homebrew安装coreutils。这将使您能够访问一个名为gdate的命令,其行为与Linux系统上的date相同。
brew install coreutils
为了获得更“原生”的体验,你可以把这个添加到你的.bash_aliases中:
alias date='gdate'
然后执行
$ date +%s%N
用时间和时区显示日期
日期+"%d-%m-%Y %T "。% N % Z”
输出22
我想从bash生成值,并在Java代码中使用该值转换回日期(Java .util)。
以下命令为我在bash文件中生成值:
日期+ % s000
纯bash解决方案
自bash 5.0(2019年1月7日发布)以来,您可以使用内置变量EPOCHREALTIME,它包含自epoch以来的秒数,包括小数点后精确到微秒(echo $EPOCHREALTIME输出类似1547624774.371210)。通过移除。最后三个地方是毫秒:
要么使用
(( t = ${EPOCHREALTIME/./} / 1000 ))
或者类似的东西
t=${EPOCHREALTIME/./} # remove the dot (s → µs)
t=${t%???} # remove the last three digits (µs → ms)
无论哪种方式t都是1547624774371。