如何获得以毫秒为单位的当前 Unix 时间(即自 Unix 纪元 1970 年 1 月 1 日以来的毫秒数)?
war*_*ren 368
date +%s
Run Code Online (Sandbox Code Playgroud)
将返回自纪元以来的秒数。
date +%s%N
Run Code Online (Sandbox Code Playgroud)
返回秒和当前纳秒。
date +%s%N | cut -b1-13
Run Code Online (Sandbox Code Playgroud)
会给你自纪元以来的毫秒数 - 当前秒加上左三纳秒。
和来自MikeyB - echo $(($(date +%s%N)/1000000))(除以 1000 只带来微秒)
Joe*_*Joe 155
您可以简单地使用%3N将纳秒截断为 3 个最高有效数字(然后是毫秒):
$ date +%s%3N
1397392146866
Run Code Online (Sandbox Code Playgroud)
这适用于我的Kubuntu 12.04(精确穿山甲)。
但请注意,%N根据您的目标系统,可能无法实现。例如在嵌入式系统上测试(buildroot rootfs,使用非 HF ARM 交叉工具链编译)没有%N:
$ date +%s%3N
1397392146%3N
Run Code Online (Sandbox Code Playgroud)
(而且我的(非根)Android 平板电脑也没有%N。)
小智 80
date +%N 不适用于 OS X,但您可以使用其中之一
ruby -e 'puts Time.now.to_f'python -c 'import time; print(int(time.time() * 1000))'node -e 'console.log(Date.now())'php -r 'echo microtime(TRUE);'DateTime.utc_now() |> DateTime.to_unix(:millisecond)wget -qO- http://www.timeapi.org/utc/now?\\s.\\Ndate +%s000小智 19
我的解决方案不是最好的,但对我有用:
date +%s000
Run Code Online (Sandbox Code Playgroud)
我只需要将 2012-05-05 之类的日期转换为毫秒。
小智 11
只是把它扔在那里,但我认为除法的正确公式是:
echo $(($(date +%s%N)/1000000))
Run Code Online (Sandbox Code Playgroud)
小智 10
此解决方案适用于 macOS。
如果您考虑使用 Bash 脚本并且有可用的 Python,则可以使用以下代码:
#!/bin/bash
python -c 'from time import time; print int(round(time() * 1000))'
Run Code Online (Sandbox Code Playgroud)
小智 7
如果您正在寻找一种显示脚本运行时间长度的方法,以下将提供(不完全准确)结果:
尽可能靠近脚本的开头,输入以下内容
basetime=$(date +%s%N)
这将为您提供一个类似于 1361802943996000000 的起始值。
在脚本末尾,使用以下内容
echo "runtime: $(echo "scale=3;($(date +%s%N) - ${basetime})/(1*10^09)" | bc) seconds"
会显示类似的内容
runtime: 12.383 seconds
笔记:
如果您愿意,可以将 (1*10^09) 替换为 1000000000
"scale=3"这是一个相当罕见的环境,强制bc你做你想做的事。还有很多!
我只在 Windows 7/MinGW 上测试过这个...我手头没有合适的 *nix 盒子。
对于建议运行外部程序以获取毫秒数的人......以这种速度,您不妨这样做:
wget -qO- http://www.timeapi.org/utc/now?\\s.\\N
Run Code Online (Sandbox Code Playgroud)
要点是:在从这里选择任何答案之前,请记住,并非所有程序都会在一整秒内运行。措施!
| 归档时间: |
|
| 查看次数: |
455150 次 |
| 最近记录: |