System.currentTimeMillis()
簡介:從1970年1月1日 UTC到如今的毫秒數
返回類型:long
單位:毫秒java
System.nanoTime()
簡介:基於cpu核心的時鐘週期來計時,它的開始時間是不肯定的,僅可用於比較兩個相對時間,運行在兩個不一樣的cpu核心上,從而致使獲得的結果徹底不符邏輯。
返回類型:long
單位:納秒(1納秒=0.000001 毫秒,1納秒=0.00000 0001秒 )post
For example, to measure how long some code takes to execute: long startTime = System.nanoTime(); // ... the code being measured ... long estimatedTime = System.nanoTime() - startTime; To compare two nanoTime values long t0 = System.nanoTime(); ... long t1 = System.nanoTime(); one should use {@code t1 - t0 < 0}, not {@code t1 < t0}, because of the possibility of numerical overflow.
SystemClock.uptimeMillis()
簡介:從開機到如今的毫秒數(手機睡眠的時間不包括在內),Handler類的 postDelay()方法也是基於SystemClock.upTimeMillis()方法
返回類型:long
單位:毫秒code
SystemClock.elapsedRealtime()
簡介從開機到如今的毫秒數(手機睡眠的時間包括在內),AlarmManager能夠定時發送消息,即便在系統睡眠、應用中止的狀態下也能夠發送,這類需求就須要使用該方法
返回類型:long
單位:毫秒it