运行在两个不同时区的浏览器和Java服务器的时间毫秒差异

Difference in timeinmillis in Browser and Java Server running in Two different timezones

本文关键字:Java 浏览器 服务器 时间 时区 两个 运行      更新时间:2023-09-26

使用在Timezone1的机器上执行的javascript代码和在Timezone2的机器上执行的Java代码获得的当前时间毫秒数是否有任何差异?

下面是这个用例的示例代码。

new Date().getTime();
使用上面的代码,我得到以毫秒为单位的当前时间。我的机器在IST

同时,我的朋友在他的PDT机器上执行下面的代码。

public class Time
{
 public static void main(String args[])
 {
  System.out.println(System.currentTimeMillis());
 }
}

当我们同时执行代码时。我们得到了大约40秒的差异。

我在这个理解中错过了什么吗?

是的,在正常情况下会有差异,即如果每个系统的时钟设置为正确的时区,并且如果客户端代码是一致的:

  • 使用本地时间,而不是UTC。
  • 使用Date对象的默认构造函数,它返回当前日期/时间

显然,如果在两台机器上没有同时检索日期,那么真正的差异将是不准确的。