如果我理解正確,即使系統時間已更改,使用System.nanoTime()
也是比System.currentTimeInMillis()
更準確地將標記保留爲當前時間的方法。那麼爲什麼當我將nanoTime()
的長整數值轉換爲Calendar
對象時,輸出是錯誤的呢?爲什麼將System.nanoTime()轉換爲Calendar對象給我錯誤的當前日期?
import java.util.Calendar;
public class Test {
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
c.setTimeInMillis(System.currentTimeMillis());
System.out.println(c.get(Calendar.MONTH) + " " + c.get(Calendar.DATE) + " " + c.get(Calendar.YEAR) +
" " + c.get(Calendar.HOUR_OF_DAY) + ":" + c.get(Calendar.MINUTE) + ":" + c.get(Calendar.SECOND)
+ ":" + c.get(Calendar.MILLISECOND));
}
}
'nanoTime'返回時間爲納秒級,如果你喂值'setTimeInMillis'有一個「單位不匹配」( ns與ms) – 2012-09-10 06:14:44
如何解決單位不匹配問題? –
你的代碼與這個問題有什麼關係?你不使用nanoTime。要將ns轉換爲ms,您只需將它除以10^6;) – Burkhard