本文目錄一覽:
JAVA中如何獲取毫秒和微秒數
一、獲取毫秒數的代碼:
(1)System.currentTimeMillis() 這種方式速度最快。
(2)Calendar.getInstance().getTimeInMillis() 這種方式速度最慢。
二、獲取微秒數的代碼:
微秒使用System.nanoTime()方法:如果Java程序需要高精度的計時,如1毫秒或者更小,使用System.nanoTime()方法,可以滿足需求。
擴展資料:
獲取微秒函數System.nanoTime() 的隱患:
System.currentTimeMillis() 起始時間是基於 1970.1.1 0:00:00 這個確定的時間的,而System.nanoTime()是基於cpu核心的時鐘周期來計時,它的開始時間是不確定的。
但是在多核處理器上,由於每個核心的開始時間不確定,那麼
“long start = System.nanoTime();String ip = Utilities.getIpByUrl(url);long cost = System.nanoTime() – start; ”
這段代碼有可能會運行在兩個不同的cpu核心上,從而導致得到的結果完全不符邏輯。
java如何把時間格式轉為毫秒
獲取毫秒數,即long類型的數值,僅能返回自 1970 年 1 月 1 日 00:00:00 GMT 以來的毫秒數。
一樓、二樓的回答就是正確的,不過在使用中還需要根據自身使用環境,直接使用或者進一步按需優化後再使用。
最常使用的就是,把String類型的日期先轉換為Date類型,最後直接調用.getTime()即可,這也是比較方便的了。
還有就是以上提到的Timestamp類中的valueOf(String s) 方法,這裡一定要注意,給定的字符串日期型數據必須符合置頂指定格式:yyyy-mm-dd hh:mm:ss[.fffffffff],否則會拋出異常。
PS
為什麼Java默認為毫秒
精度高。毫秒是秒的千分之一,精度很高,因為Java是一個編寫代碼的程序,要求必有要有非常高的精度,所以會默認為毫秒。Java是一門面向對象編程語言,1990年代初由詹姆斯·高斯林等人開發出Java語言的雛形,最初被命名為Oak,後隨着互聯網的發展,經過對Oak的改造,1995年5月Java正式發布。
原創文章,作者:KXMT,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/140838.html