首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将保存在纽约时区的日期时间转换为javascript中的本地时区?

如何将保存在纽约时区的日期时间转换为javascript中的本地时区?
EN

Stack Overflow用户
提问于 2019-04-15 23:18:06
回答 1查看 3.2K关注 0票数 0

我得到的日期时间存储在纽约时区(GMT -4)格式的字符串从第三方网站。我希望使用javascript将其转换为本地时区。日期时间以下列格式保存

"2019-04-15 19:09:16“

我知道我可以通过MomentJS实现这一点,但我想知道除了加载所有库以将日期时间转换为本地时区之外,是否还有任何简单的解决方案。

对Chrome的预期输出可以通过在日期结束时附加GMT-4

代码语言:javascript
复制
new Date("2019-04-15 19:09:16 GMT-4")

但是由于格式无效,这个解决方案不能在Firefox上工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-16 04:01:07

如果您实际上知道偏移量是UTC-4,那么您只需重新格式化您的字符串,以符合ECMAScript日期时间字符串格式,这是对ISO 8601扩展格式的简化。

代码语言:javascript
复制
new Date("2019-04-15T19:09:16-04:00")

然而,请注意,纽约是在美国东部时间,这实际上是在夏令时为您提供的日期和时间。换句话说,它不是UTC-4 (EST),而是UTC-5 (EDT)。因此,对于这个例子,应该是:

代码语言:javascript
复制
new Date("2019-04-15T19:09:16-05:00")

但是,如果您不知道特定日期和时间上的给定时区的偏移量是多少呢?毕竟,时区、夏令时转换和相关的偏移量在世界各地都是不同的,并且在整个历史过程中都发生了变化。因此,不能仅仅假设时区有一个数字,这是它的偏移量。(请参阅时区标记wiki中“时区!=偏移”下的更多内容。)

目前,JavaScript无法单独帮助您。相反,您需要使用一个库,例如这里引用的

例如,使用鲁迅,您可以执行以下操作:

代码语言:javascript
复制
luxon.DateTime.fromISO("2019-04-15T19:09:16", { zone: "America/New_York" }).toJSDate()

将来,我们希望用JavaScript语言通过时间对象来解决这个问题--这些对象仍然处于ECMAScript提案阶段。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55698456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档