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