mongodb查询日期

来源:互联网 发布:北京云计算招聘岗位 编辑:程序博客网 时间:2024/05/19 18:39
1、
mongo保存日期是一个64-bit整形数。java driver保存Date时会把他自动转换为标准时间GMT。
如中国在GMT+8时区,保存2012-01-20 00:00:00到库中,查询后结果竟然是2012-01-19 16:00:00跟想要结果不一致。 
可以在com.mongodb.util.JSON找到问题根源:
 if (o instanceof Date) {            Date d = (Date) o;            SimpleDateFormat format =         new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");            format.setCalendar(new GregorianCalendar(new SimpleTimeZone(0, "GMT")));        serialize(new BasicDBObject("$date", format.format(d)), buf);            return;  }
解决办法先给补上8小时
时间型:
 SimpleDateFormat format =         new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); format.setCalendar(new GregorianCalendar(new SimpleTimeZone(0, "GMT"))); Date date = format.parse("2012-01-20 00:00:00");
日期型:
 SimpleDateFormat format =         new SimpleDateFormat("yyyy-MM-dd"); format.setCalendar(new GregorianCalendar(new SimpleTimeZone(0, "GMT"))); Date date = format.parse("2012-01-20");


0 0
原创粉丝点击