Linux中是否有shell命令获取以毫秒为单位的时间?Linux命令获取以毫秒为单位的时间
回答
date +%s
返回自纪元以来的秒数。
date +%s%N
返回秒数+当前纳秒数。
因此,echo $(($(date +%s%N)/1000000))
是你所需要的
在Mac OS上不起作用,因为'date'不支持'%N' – yegor256 2013-08-27 18:36:29
问题是要求Linux命令。对于使用[GNU coreutils](http://www.gnu.org/software/coreutils/)的日期命令,@ alper的答案可以正常工作。 GNUtize你的OSX:[在Mac OS X上安装和使用GNU命令行工具](http://www.topbug.net/blog/2013/04/14/install-and-use-gnu-command-line-tools- in-mac-os-x /) – caligari 2014-02-21 07:58:28
'date +%s%3N'更快(基于@ michael-defort的答案) – caligari 2014-02-21 08:08:31
date +"%T.%N"
返回当前时间以纳秒。date +"%T.%6N"
以纳秒为单位返回当前时间,舍入为前6位数字,即微秒。date +"%T.%3N"
返回当前时间,以纳秒为单位舍入到前3位数字,即毫秒。
一般来说,date
命令的格式的每个字段可以给出一个可选的字段宽度。
'%xN':字段宽度不错! – fduff 2014-01-22 12:47:54
日期+“%Y%m%d。%H%M%S%3N”以毫秒为单位。 – 2016-01-14 03:48:13
纳米为10 -9 和毫10 -3。因此,我们可以使用纳秒3个第一字符,以获得毫:
date +%s%3N
从man date
:
%N纳秒(000000000..999999999)
%S秒1970-01-01 00:00:00 UTC
来源:服务器故障的How do I get current Unix time in milliseconds using bash?。
在OS X上,其中date
不支持%N
标志,我建议使用homebrew安装coreutils
。
brew install coreutils
这会给你访问一个名为gdate
命令,将表现为date
确实在Linux系统上。
对于更多的“原生”的经历,你可以随时添加到您的.bash_aliases
alias date='gdate'
然后执行
$ date +%s%N
其他的答案很可能在大多数情况下足够了,但我认为我会当我在busybox系统上遇到问题时,请添加我的2美分。
相关系统不支持%N
格式选项,也没有python
或perl
解释器。
经过大量挠头我们(感谢戴夫!)想出了这个:
adjtimex | awk '/(time.tv_sec|time.tv_usec):/ { printf("%06d", $2) }'
它提取秒和毫秒从adjtimex
输出(通常用来设置系统时钟选项),并打印他们没有新的线条(所以他们粘在一起)。请注意,微秒字段必须预填充零,但这不会影响长于6位数的秒字段。从这应该是微不足道的微秒转换为毫秒。
如果你需要一个尾随新行(也许是因为它看起来更好)然后尝试
adjtimex | awk '/(time.tv_sec|time.tv_usec):/ { printf("%06d", $2) }' && printf "\n"
另外请注意,这需要adjtimex
和awk
可用。如果没有,那么与busybox的,你可以在本地使用
ln -s /bin/busybox ./adjtimex
ln -s /bin/busybox ./awk
指向它们,然后调用上面
./adjtimex | ./awk '/(time.tv_sec|time.tv_usec):/ { printf("%06d", $2) }'
或者当然,你可以把它们放在PATH
编辑:
上面的工作在我的busybox设备上。在Ubuntu上,我尝试了同样的事情,并意识到adjtimex
有不同的版本。在Ubuntu这个工作到输出的时间以秒为小数,以微秒(包括尾随新行)
sudo apt-get install adjtimex
adjtimex -p | awk '/raw time:/ { print $6 }'
我不会做这在Ubuntu虽然。我会用date +%s%N
date
命令didnt提供OS X毫秒,所以使用蟒蛇别名
millis(){ python -c "import time; print(int(time.time()*1000))"; }
OR
alias millis='python -c "import time; print(int(time.time()*1000))"'
只想添加到@耳珀回答什么,我有要做这个工作:
在Mac上,你需要brew install coreutils
,所以我们可以使用gdate
。否则,在Linux上,它只是date
。而这一功能将帮助您随时命令,而无需创建临时文件或任何东西:
function timeit() {
start=`gdate +%s%N`
bash -c $1
end=`gdate +%s%N`
runtime=$(((end-start)/1000000000.0))
echo " seconds"
}
你还可以用一个字符串timeit 'tsc --noEmit'
这里是Linux的一个莫名其妙的便携式黑客用于获取时间以毫秒为单位使用:
#!/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一起工作
- 1. 以毫秒为单位获取ViewPager视图的时间
- 2. 获取C中的当前时间(以毫秒为单位)?
- 3. Mongodb时间戳,以毫秒为单位
- 4. 时间以毫秒为单位计算
- 5. 花费时间以毫秒为单位
- 6. 从日期获取时间(以毫秒为单位)
- 7. 如何以毫秒为单位获取NSEvent时间戳?
- 8. 如何在AngularJS中以毫秒为单位获取时间
- 9. 以毫秒为单位的日期时间选取器
- 10. NetStream.seek以毫秒为单位
- 11. SQLITE:以毫秒为单位获取当前时间并适合32位int
- 12. 转换“时间”,“单位”,以毫秒为单位
- 13. 以毫秒为单位的TImespan,以分钟和秒为单位
- 14. 时间选择器以毫秒为单位以毫秒为单位计算出错误的值
- 15. 如何在从SQL Server检索时以毫秒为单位获取时间戳?
- 16. TimePicker以毫秒为单位倒计时
- 17. 如何从android中的timepicker获取以毫秒为单位的当前时间?
- 18. R 2列之间的时间差(以毫秒为单位)
- 19. 来自BPM(Midi tempo)的时间间隔(以毫秒为单位)
- 20. 如何使用C获取以毫秒为单位的当前时间?
- 21. 如何以毫秒为单位获取Firebase服务器的当前时间戳?
- 22. 如何获取bash脚本中经过的时间(以毫秒为单位)?
- 23. Linux和Windows毫秒时间
- 24. 如何使用Go语言以毫秒为单位获取当前时间?
- 25. 如何获取当前日期时间以毫秒为单位android
- 26. 如何获取文件夹创建时间(以毫秒为单位)?
- 27. iPhone NSDate - 以毫秒为单位获取时间并存储在coredata中
- 28. 以毫秒为单位获取两个DateTime实例的差异
- 29. 以毫秒为单位获取错误的行ID sql
- 30. 以毫秒为单位解析Perl的时间戳
'日期+%s。%N'会给你纳秒,你能用它工作吗? – Wrikken 2013-05-14 17:01:50
@Wrikken虽然这不是很方便。 – 2014-06-23 12:43:08
date +“%Y%m%d%H%M%S%3N” - 通常我使用这个命令来获取fulldate和独特的时间,直到毫秒来在unix bash脚本中创建临时文件名。如果你的系统无法应付毫秒,你可以分别使用3到6和9进入微秒或纳秒。 – 2016-01-14 03:51:04