我得到的日期时间存储在纽约时区(GMT -4)格式的字符串从第三方网站。我希望使用javascript将其转换为本地时区。日期时间以下列格式保存
"2019-04-15 19:09:16“
我知道我可以通过MomentJS实现这一点,但我想知道除了加载所有库以将日期时间转换为本地时区之外,是否还有任何简单的解决方案。
对Chrome的预期输出可以通过在日期结束时附加GMT-4和
new Date("2019-04-15 19:09:16 GMT-4")但是由于格式无效,这个解决方案不能在Firefox上工作。
发布于 2019-04-16 04:01:07
如果您实际上知道偏移量是UTC-4,那么您只需重新格式化您的字符串,以符合ECMAScript日期时间字符串格式,这是对ISO 8601扩展格式的简化。
new Date("2019-04-15T19:09:16-04:00")然而,请注意,纽约是在美国东部时间,这实际上是在夏令时为您提供的日期和时间。换句话说,它不是UTC-4 (EST),而是UTC-5 (EDT)。因此,对于这个例子,应该是:
new Date("2019-04-15T19:09:16-05:00")但是,如果您不知道特定日期和时间上的给定时区的偏移量是多少呢?毕竟,时区、夏令时转换和相关的偏移量在世界各地都是不同的,并且在整个历史过程中都发生了变化。因此,不能仅仅假设时区有一个数字,这是它的偏移量。(请参阅时区标记wiki中“时区!=偏移”下的更多内容。)
目前,JavaScript无法单独帮助您。相反,您需要使用一个库,例如这里引用的。
例如,使用鲁迅,您可以执行以下操作:
luxon.DateTime.fromISO("2019-04-15T19:09:16", { zone: "America/New_York" }).toJSDate()将来,我们希望用JavaScript语言通过时间对象来解决这个问题--这些对象仍然处于ECMAScript提案阶段。
https://stackoverflow.com/questions/55698456
复制相似问题