首页 > 解决方案 > 在 Mongodb 2.4 版中将时间戳转换为 ISO 日期

问题描述

我安装了 mongodb 2.4.10 版。文件的结构是:-

{
    "_id" : ObjectId("5d15f245f4dda1e055091ae1"),
    "name" : "test site service", 
    "starFromTimestamp" : NumberLong(1559275200),
    "toTimestamp" : NumberLong(1561867200),
    "uuid" : "ssg-5d15f245f2893825813309"

}

我在 Mongo shell 中执行了以下代码,以便将时间戳转换为 ISODate

db.servicesitegroup.find().forEach(function(doc) { 
    doc.startISODate=new Date(doc.starFromTimestamp);
    db.servicesitegroup.save(doc); 
    })

文档已更新,结果集如下所示:-

 {
    "_id" : ObjectId("5d15f245f4dda1e055091ae1"),
    "name" : "test site service", 
    "starFromTimestamp" : NumberLong(1559275200),
    "toTimestamp" : NumberLong(1561867200),
    "uuid" : "ssg-5d15f245f2893825813309",
    "startISODate" : ISODate("1970-01-19T01:07:55.200Z")    
  }

如果我使用时间戳转换器,则 1559275200 的值相当于 Friday, May 31, 2019 4:00:00 AM 。为什么时间戳没有被转换为正确的值?任何人都可以在这里指导我。

标签: datemongodb-query

解决方案


我需要将时间戳值乘以 1000 。

db.servicesitegroup.find().forEach(function(doc) { 
    doc.startISODate=new Date(doc.starFromTimestamp * 1000);
    db.servicesitegroup.save(doc); 
    })

上面的代码给了我正确的输出。


推荐阅读