【问题标题】:JavaScript - Parse UTC DateJavaScript - 解析 UTC 日期
【发布时间】:2015-08-27 14:46:11
【问题描述】:

如何解析简单的日期字符串并让 JavaScript 知道它实际上是 UTC 日期?目前,如果我使用new Date('2015-08-27'),它会将其转换为我的时区。

【问题讨论】:

  • 我强烈建议使用a library
  • 许多不同的选项:stackoverflow.com/questions/948532/…
  • 我想远离图书馆。
  • 有转换,所以你的日期可能是一样的..你可能不需要转换到你的时区,new Date('2015-08-27').toISOString()的显示是什么

标签: javascript date


【解决方案1】:

您可以附加 'T00:00:00.000Z' 以指定时区(Z 表示 UTC)

new Date('2015-08-27' + 'T00:00:00.000Z')

请注意,new Date('2015-08-27') 在 ES5(UTC)和 ES6(本地)中的处理方式不同,因此如果您打算对其进行硬编码(即不要做)


另外,请注意您的console.log 可能会向您显示与表达式计算的 UTC 时间相对应的本地时间(如果您希望 UTC 在计算表达式的末尾,这往往会让您有点失望对于那些评估为您的本地时间的人,最后到 UTC 时间和您的本地时区)。比如

new Date('2015-08-27T00:00:00.000Z')

可以显示

Thu Aug 27 2015 1:00:00 GMT+100

相同
Thu Aug 27 2015 00:00:00 UTC

【讨论】:

  • 如果有一个成熟的解决方案来处理日期实例化的许多字符串和选项,那就太好了
【解决方案2】:

这就是我要做的。

var current = new Date();
var utcDate = new Date(current.getTime() + current.getTimezoneOffset() * 60000);

【讨论】:

  • 时区偏移并不总是以可被一小时整除的值给出。例如,冰岛有半小时的时区偏移。
猜你喜欢
  • 2011-11-20
  • 1970-01-01
  • 2016-05-22
  • 2023-03-23
  • 2019-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多