【问题标题】:Difference in timeinmillis in Browser and Java Server running in Two different timezones在两个不同时区运行的浏览器和 Java 服务器中的 timeinmillis 差异
【发布时间】:2016-12-26 08:39:42
【问题描述】:

使用在 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,不必担心时区)。为什么要这样做?
  • 会不会是您和您朋友机器上的系统时钟不同步?除非你们都从一个中心位置(或彼此之间)同步系统时钟,否则你们的时钟之间不可避免地会有一些偏差。

标签: javascript java timezone


【解决方案1】:

是的,正常情况下会有所不同,即每个系统的时钟是否设置为正确的时区,以及客户端代码是否一致:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-17
    • 2016-08-22
    • 1970-01-01
    • 2016-06-25
    • 1970-01-01
    • 1970-01-01
    • 2011-11-28
    • 2012-05-26
    相关资源
    最近更新 更多