3

当我将 UNIX 时间戳存储到 MongoDB 中时,我遇到了一个让我的数据库变得糟糕的大问题。这是代码:

DBObject tmp = new BasicDBObject("_id", basicUrl+ob.getString("id"));//new a DBObject,it doesn't matter
 Date date= new Date(1316410912);//1316410912 is a UNIX timestamp
 tmp.put("created_at",date);
 mg = new Mongo();
 test=db.getCollection("qq");
 test.insert(tmp);

完成添加过程,我打印出查询结果:

{ "_id" : "http://t.qq.com/p/t/163173122485971" , "created_at" : { "$date" : "1970-01-16T19:51:58.125Z"}}

但实际时间应该是“Mon Sep 19 2011 13:41:52”

请帮助我并告诉我我的代码有什么问题。

4

3 回答 3

4

Date以毫秒为单位,而不是以秒为单位。

 Date date= new Date(1316410912000l);

这将产生正确的日期。有关更多详细信息,请参阅Javadocs

于 2013-05-08T08:31:32.333 回答
1

它应该以毫秒为单位,而不是以秒为单位。

Date(long date) 

分配一个 Date 对象并将其初始化以表示自称为“纪元”的标准基准时间(即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。

于 2013-05-08T08:32:09.657 回答
1

你忘记了这位女士。尝试

1316410912000l

这应该会让你更接近你想要的日期。

于 2013-05-08T08:36:07.607 回答