【问题标题】:Calling new Date(String s) produces result in different timezone调用 new Date(String s) 会产生不同时区的结果
【发布时间】:2022-12-11 18:51:06
【问题描述】:

我正在尝试在 javascript 中显示日期。我从后端收到这样的日期:2020-09-22T17:10:25Z(来自 Java 中的 Instant 对象)。

当我尝试拨打new Date("2020-09-22T17:10:25Z")时,我得到:Tue Sep 22 2020 20:10:25 GMT+0300 (Eastern European Summer Time)。这个问题是我不在GMT+0300时区,而是GMT+0200

另一方面,当我尝试致电new Date()时,我得到Thu Dec 08 2022 20:34:11 GMT+0200 (Eastern European Standard Time),这是我正确的时区。

我的问题是,为什么在第一种情况下我得到GMT+0300,而在第二种情况下我得到GMT+0200?我试图解析的字符串中的 Z 代表 Zuluzero hour offset,那么为什么这两种不同的方法使用不同的时区?

【问题讨论】:

  • 因为在 2020-09-22(这是您收到的日期),您的时区是夏令时 (GMT +3)
  • new Date 不会产生不同的结果。它是一个日期对象,代表来自您的 Java 后端的 Instant - 只是一个时间戳,没有附加时区。 .toString() 使用您的系统时区仅用于格式化.但如果您不想那样,只需使用.toUTCString() 即可。

标签: javascript date datetime timezone


【解决方案1】:

看起来你在冬天是在GMT+2,但在夏天(九月)你在夏令时是GMT+3

【讨论】:

    【解决方案2】:

    你有没有考虑过夏季和冬季之间的时间变化

    【讨论】:

      【解决方案3】:

      javascript 的 date() 函数根据您本地计算机上设置的时间运行。如果它给出GMT+3,那么您的计算机设置为GMT+3。检查系统时钟的配置。

      窗户:https://kb.wisc.edu/helpdesk/page.php?id=79027

      麦克:https://support.apple.com/en-ca/guide/mac-help/mchlp2996/mac

      Linux: https://www.makeuseof.com/how-to-set-date-and-time-linux/

      【讨论】:

        【解决方案4】:

        日期字符串2020-09-22T17:10:25Z中的Z表示时间为UTC时区,也称为祖鲁时间。当您使用此字符串创建新的 Date 对象时,Date 对象将使用 UTC 时区的时间进行初始化。

        当您调用不带任何参数的 new Date() 时,Date 对象将使用本地时区的当前日期和时间进行初始化。在您的例子中,本地时区是 GMT+0200,因此 Date 对象将使用该时区的当前日期和时间进行初始化。

        在这两种情况下您看到不同时区的原因是 Date 对象在显示时自动将时间转换为本地时区。在第一种情况下,Date 对象使用 UTC 时区的时间进行初始化,显示时会自动转换为本地时区 (GMT+0200)。在第二种情况下,Date 对象已经在本地时区,不需要转换,时间按原样显示。

        如果要初始化一个特定时区特定时间的Date对象,可以使用Date.UTC()方法将时间转换为UTC时区,然后将该时间传递给Date构造函数。例如,您可以使用以下代码为问题中指定的日期和时间创建一个 Date 对象:

        const date = new Date(Date.UTC(2020, 8, 22, 17, 10, 25));
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-10-22
          • 2019-11-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-05-10
          相关资源
          最近更新 更多