我需要以毫秒爲單位獲得最準確的時間(與系統時鐘同步)。 我知道System.currentTimeMillis()
是準確的。 我也知道JodaTime
的millis是準確的。JODATIME vs System.currentTimeMillis()根據精度
哪一個更準確?
謝謝!
我需要以毫秒爲單位獲得最準確的時間(與系統時鐘同步)。 我知道System.currentTimeMillis()
是準確的。 我也知道JodaTime
的millis是準確的。JODATIME vs System.currentTimeMillis()根據精度
哪一個更準確?
謝謝!
喬達時間只是默認情況下在System.currentTimeMillis
背上。 Joda Time中的所有內容都使用DateTimeUtils.currentTimeMillis
,默認使用System.currentTimeMillis()
,但可以使用setCurrentMillisProvider()
替換。
如果你想要它與系統時鐘同步,System.currentTimeMillis
應該沒問題。當然,您可以使用NTP提供商獲得更準確的時間。我個人不喜歡Joda公開的靜態依賴 - 它比測試無法做任何事情要好,但它仍然是全局狀態,我更喜歡將一個Clock
對象作爲依賴項傳遞給需要當前時間的任何東西)
System.nanoTime()比System.currentTimeMillis()更準確。
這是做什麼用約達時間的DateTimeUtils#currentTimeMillis()的文件說:
,缺省時返回
System.currentTimeMillis().
這可以改變使用這個類的其他方法。
您可以使用DateTimeUtils#setCurrentMillisProvider,改變currentTimeMillis()
行爲。
它*不同*。這兩者從來都不是真正的替代品。 'nanoTime'用於精確測量兩次之間的差異,但不應該用於「當前時間」。 'System.currentTimeMillis'是相反的。 –
這是'System.currentTimeMillis()'。因爲無論如何,喬達時間可能會用到這個,所以我相信沒有任何區別。 – fge