MEAN堆栈猫鼬用“ Z”时区错误保存日期时间

时间:2018-07-10 09:23:41

标签: node.js mongodb datetime mongoose

在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时间?

1 个答案:

答案 0 :(得分:0)

如果您想保存特定国家/地区的时区,并且如果使用的是即时信息,则易于管理

下面的链接将为您提供帮助

Updating time offset with moment().utcOffset()