首页 > 解决方案 > MEAN stack mongoose 用“Z”时区错误保存日期时间

问题描述

在Mongodocs中,据说最后指定“Z”时区的日期时间保存为“UTC”日期时间格式。 https://docs.mongodb.com/manual/reference/method/Date/

我在 Python 中创建了一些示例时间数据:

now=str((datetime.datetime.now()).isoformat())+'Z'  

then=str((datetime.datetime.utcnow()+datetime.timedelta(0,one_week_in_seconds)).isoformat())+'Z'

我使用了 datetime.now() 和 datetime.utcnow() 并在两者上都附加了“Z”......这就是我得到的:

'now': '2018-07-10T11:06:05.512484Z',
'then': '2018-07-17T09:06:05.512484Z',

我现在使用 MEAN 堆栈与 Node/Express 和 mongoose (ODM) 驱动程序在数据库中创建我的模式模型。当我通过一些路由器中间件将数据推送到我的 mongoDB 数据库时,这两个字段具有猫鼬“日期”格式。但是,对于这两个字段,它都会创建一个 ISODate 时间格式...:

 "now" : ISODate("2018-07-10T09:02:01.410Z"),
 "then" : ISODate("2018-07-17T09:02:01.410Z"),

我认为这是一个错误,通常,如果指定了“Z”,它应该以 ISO 格式创建指定的时间,它就在这里,但是因为我已经以本地时间格式创建了时间并在其中附加了一个“Z”第一种情况(“现在”),时间是否应该保存为'now' : ISODate("2018-07-10T11:06:05.512484Z")不修改/从本地时间转换为UTC时间?

标签: node.jsmongodbdatetimemongoose

解决方案


如果你想保存特定的国家时区并且你正在使用时刻,那么它很容易管理

以下链接将对您有所帮助

使用 moment().utcOffset() 更新时间偏移


推荐阅读