我在MongoDB中存储了一个带有UNIX时间戳的JAVA日期,并得到了错误的答案



当我将UNIX时间戳存储到MongoDB中时,我遇到了一个大问题,使我的DB很糟糕。下面是代码:

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"

请帮帮我,告诉我我的代码有什么问题

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

 Date date= new Date(1316410912000l);

将产生正确的日期。

单位应该是毫秒,而不是秒。

Date(long date) 

分配一个Date对象并初始化它以表示指定的日期自标准基准时间(称为"the")以来的毫秒数epoch",即1970年1月1日00:00:00 GMT。

你忘了Try小姐了

1316410912000l

最新更新