Linux中是否有shell命令以毫秒为单位获取时间?


当前回答

date +%s%N返回秒数+当前纳秒。

因此,echo $(($(date +%s%N)/1000000))就是您所需要的。

例子:

$ echo $(($(date +%s%N)/1000000))
1535546718115

Date +%s返回自epoch以来的秒数,如果有用的话。

其他回答

用时间和时区显示日期

日期+"%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

我想从bash生成值,并在Java代码中使用该值转换回日期(Java .util)。

以下命令为我在bash文件中生成值:

日期+ % s000

下面是一个在Linux上以毫秒为单位获取时间的便携式hack:

#!/bin/sh
read up rest </proc/uptime; t1="${up%.*}${up#*.}"
sleep 3    # your command
read up rest </proc/uptime; t2="${up%.*}${up#*.}"

millisec=$(( 10*(t2-t1) ))
echo $millisec

输出结果为:

3010

这是一个非常廉价的操作,它与shell内部程序和procfs一起工作。