【发布时间】:2019-02-02 08:11:16
【问题描述】:
我只是想了解 System 类中的 currentTimeMillis()/1000L 方法。据我了解,此方法将以秒为单位返回当前时间。我在这里有疑问如果我在 Local jvm (IST) 中运行相同的代码,并且远程框(Sanjose)将返回不同的值作为输出?
如果我们在美国和印度的不同 JVM 中运行代码,有人可以解释一下它是如何工作的,输出会是什么。它返回相同的输出吗?还是不一样?
【问题讨论】:
-
无论您在哪个时区,它都使用 UTC。所以,是的,它在世界任何地方都是一样的。另见:stackoverflow.com/q/17271039/669576
-
大多数人遗漏的重要一点是,如果两台计算机最近都没有与 NTP 同步,这一切都无关紧要。
-
如果你想要秒而不是毫秒,我更喜欢
Instant.now().getEpochSecond()。自己除以 1000 会更清楚。自己做时间换算是个坏习惯。