Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
System.currentTimeMillis()/1000如何在JAVA中工作_Java_Java Time - Fatal编程技术网

System.currentTimeMillis()/1000如何在JAVA中工作

System.currentTimeMillis()/1000如何在JAVA中工作,java,java-time,Java,Java Time,我只想了解System类中的currentTimeMillis()/1000L方法。据我所知,此方法将以秒为单位返回当前时间。我怀疑我是否在本地jvm(IST)中运行相同的代码,而远程box(Sanjose)将返回不同的值作为输出 有人能解释一下,如果我们在不同的JVM(美国和印度)中运行代码,它是如何工作的,输出是什么。它是否返回相同的输出?还是不同?它给出了自1970年1月1日00:00:00的纪元时间以来经过的毫秒数。它也被称为Unix时间。在此处了解更多信息它返回自unix纪元开始以来的

我只想了解System类中的currentTimeMillis()/1000L方法。据我所知,此方法将以秒为单位返回当前时间。我怀疑我是否在本地jvm(IST)中运行相同的代码,而远程box(Sanjose)将返回不同的值作为输出


有人能解释一下,如果我们在不同的JVM(美国和印度)中运行代码,它是如何工作的,输出是什么。它是否返回相同的输出?还是不同?

它给出了自1970年1月1日
00:00:00的纪元时间以来经过的毫秒数。它也被称为Unix时间。在此处了解更多信息

它返回自unix纪元开始以来的毫秒数,这与时区无关。因此,它应该返回相同的输出

代码将返回相同的输出,因为.currentTimeMillis()函数使用UTC时区而不是JVM的本地时区


请参阅Oracle的文档:

它不会有什么不同吗?如果我们在不同的JVM中运行代码?就像不同的国家。它会给出相同的输出吗?如果您同时在位于不同国家/地区的两个不同JVM中运行代码(但具有相同的实现),结果应该是相同的。因为,无论您位于何处,自Unix纪元开始以来经过的毫秒数都是相同的。谢谢。这真的很有帮助。接受你的答案。如果其中一个设备时钟设置不正确,因为它使用的是系统时钟,这将有所不同。除此之外,它不会。无论您处于哪个时区,它都使用UTC。所以,是的,世界上任何地方都是一样的。另请参见:大多数人忽略的一个重要事实是,如果两台计算机最近都没有与NTP同步,那么这一切都无关紧要。如果您想要秒而不是毫秒,我更喜欢
Instant.now().getEpochSecond()
。更清楚的是,按1000进行自己的除法运算。做自己的时间转换是一个坏习惯。