System.currentTimeMillis和System.nanoTime的區別

文章轉載自第一代碼http://www.diyidaima.com/article/detail/rgrzjf0u
System.currentTimeMillis返回的是從1970.1.1 UTC 零點開始到現在的時間,精確到毫秒,

平時我們可以根據System.currentTimeMillis來計算當前日期,星期幾等,可以方便的與Date進行轉換,

下面時jdk中的介紹:

public static long currentTimeMillis() 返回以毫秒爲單位的當前時間。

注意,當返回值的時間單位是毫秒時,值的粒度取決於底層操作系統,並且粒度可能更大。

System.nanoTime提供相對精確的計時,但是不能用他來計算當前日期,在jdk中的說明如下:

public static long nanoTime() 返回最準確的可用系統計時器的當前值,以毫微秒爲單位。

此方法只能用於測量已過的時間,與系統或鐘錶時間的其他任何時間概念無關。

返回值表示從某一固定但任意的時間算起的毫微秒數(或許從以後算起,所以該值可能爲負)。

此方法提供毫微秒的精度,但不是必要的毫微秒的準確度。它對於值的更改頻率沒有作出保證。

在取值範圍大於約 292 年(263 毫微秒)的連續調用的不同點在於:由於數字溢出,將無法準確計算已過的時間。

發佈了29 篇原創文章 · 獲贊 4 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章