【发布时间】:2016-07-16 17:01:11
【问题描述】:
当我在 mongodb 中插入日期时间时,它是 UTC 格式
ISODate("2016-03-29T07:53:02.847Z")
当我获取这个结果时,它在 IST 中
2016 年 3 月 29 日星期二 13:23:02 GMT+0530 (IST)
我想将其转换为 EST 并显示(仅日期和时间)
2016 年 3 月 29 日星期二 02:56:22 GMT-0400 (EDT)
2016 年 3 月 29 日星期二 02:56:22(最终输出)
我已经尝试过 node-time、moment js 等。做了很多研究但没有结果。 任何帮助/建议都非常感谢.
【问题讨论】:
-
你不应该。以 UTC 存储是一种很好的做法。这样,每个 时区都有一致的数据视图。时区是“客户端”问题,而不是数据库问题。
-
您可以将 GMT 偏移存储在另一个字段中,以保留此信息。 Sqlserver 具有用于此确切目的的数据类型。不幸的是 mongo,而大多数其他数据库都没有。
-
它不保存在本地,它保存在UTC。您可能会混淆
console.log(document)之类的输出,它将日期“字符串化”为本地值。这就是 JavaScriptDate对象的.toString()方法在起作用。您也可以在new Date().toString()中执行此操作,而不是new Date(),其中一个显示“本地字符串”,另一个显示它实际上是 UTC 日期。 -
对不起。我写错了。它以 UTC 格式保存,但在获取时会将 UTC 转换为 IST。如何 ?为什么 ?另外,您在之前的评论中没有回答我的第二个问题。 @BlakesSeven
标签: javascript mongodb datetime timezone