我需要以毫秒为单位获得最准确的时间(与系统时钟同步)。 我知道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