JODATIME与System.currentTimeMillis()的准确性

时间:2013-06-13 06:34:03

标签: java android jodatime

我需要以毫秒为单位获得最准确的时间(与系统时钟同步)。 我知道System.currentTimeMillis()是准确的。 我也知道JodaTime的毫米是准确的。

哪个更准确?

谢谢!

2 个答案:

答案 0 :(得分:8)

Joda Time默认情况下只会背负System.currentTimeMillis。 Joda Time中的所有内容都使用DateTimeUtils.currentTimeMillis,默认使用System.currentTimeMillis()但可以使用setCurrentMillisProvider()替换。

如果您希望它与系统时钟同步,System.currentTimeMillis应该没问题。当然,您可以使用NTP提供商获得更准确的时间。

(我个人不喜欢Joda暴露的静态依赖 - 它比不能为测试做任何事情更好,但它仍然是全局状态。我更喜欢将Clock对象作为依赖项传递给任何需要的东西当前时间。)

答案 1 :(得分:3)

System.nanoTime()System.currentTimeMillis()更准确。

这就是Joda Time的DateTimeUtils#currentTimeMillis()文档所说的内容:

  

默认情况下,它返回System.currentTimeMillis().这可以使用此类中的其他方法进行更改。

您可以使用DateTimeUtils#setCurrentMillisProvider更改currentTimeMillis() 的行为。