精確度不同:System.nanoTime() 返回的是納秒級別的時間戳,其精確度比 System.currentTimeMillis() 高。System.nanoTime() 主要用于測量時間間隔或者性能分析。
時間基準不同:System.currentTimeMillis() 返回的是自 1970 年 1 月 1 日以來的毫秒數,是相對于系統時間的,它可以被改變,比如用戶手動修改系統時間。而 System.nanoTime() 返回的是相對于 JVM 啟動時的納秒數,不受系統時間影響。
用途不同:System.currentTimeMillis() 適用于需要獲取當前時間的場景,比如記錄日志,計算時間間隔等;而 System.nanoTime() 適用于需要高精度計時的場景,比如性能評估,定時任務等。
總的來說,如果只是需要獲取當前時間或者計算時間間隔,可以使用 System.currentTimeMillis();如果需要進行高精度的時間測量或者性能評估,可以使用 System.nanoTime()。