mongo java driver日期转换问题

Java代码  

  1. https://github.com/ewcmsfree/ewcms/wiki/Help-mongo-java-driver-date  
  2. mongo java driver日期转换问题  
  3. 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找到问题根源:  
  4.   
  5.  if (o instanceof Date) {  
  6.             Date d = (Date) o;  
  7.             SimpleDateFormat format =   
  8.         new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");  
  9.             format.setCalendar(new GregorianCalendar(new SimpleTimeZone(0, "GMT")));  
  10.         serialize(new BasicDBObject("$date", format.format(d)), buf);  
  11.             return;  
  12.   }  
  13. 找到问就好办,自己完成日期的转换:  
  14.   
  15. SimpleDateFormat  
  16.  SimpleDateFormat format =   
  17.         new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");  
  18.  format.setCalendar(new GregorianCalendar(new SimpleTimeZone(0, "GMT")));  
  19.  Date date = format.parse("2012-01-20 00:00:00");  
  20. date日期变成2012-01-20 08:00:00+08也就是在GMT+8时区下自动加8个小时。  
时间: 2024-09-23 12:34:10

mongo java driver日期转换问题的相关文章

java日期操作工具类(获取指定日期、日期转换、相隔天数)_java

本文实例为大家分享了java日期操作工具类,获取指定日期前一天.后一天:日期转换:两个日期之间相隔天数等工具类,供大家参考,具体内容如下 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; public class

Java高级日期概念 (献给那些要国际化时间及SQL时间的兄弟)

概念|高级 Java高级日期概念 如果你的Java 程序向处在不同时区或者不同国家的用户显示时间和日期,那么你需要了解Java日期类的一些更加高级的方面 .本文中讨论的类将包含java.text.DateFormat,以及java.util.TimeZone和java.util.Locate.我们还将讨论如何使用一个java.util.Date的子类java.sql.Date来从Oracle数据库里提取和保存Java日期数据.地区的问题在我们国际化我们的日期数据以前,我们需要进一步的学习Loca

有关Java的日期处理的一些杂记

在企业应用开发中,经常会遇到日期的相关处理,说实话JDK自带的日期方法很难用.就我个人而言我一般都会采用joda-time来替代JDK自身的日期. 这篇文章是杂记,所以写的比较零散,希望大家不要见怪.   SimpleDateFormat 先来说说JDK自带的SimpleDateFormat类吧.SimpleDateFormat 是 Java 中一个非常常用的类用来对日期字符串进行解析和格式化输出,但如果使用不小心会导致非常微妙和难以调试的问题,因为 DateFormat 和 SimpleDat

java自定义日期转化类示例_java

java自定义日期转化类 复制代码 代码如下: import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date; import org.apache.commons.beanutils.Converter; /** * 自定义 java.util.Date日期转换器 *  *  */public class MyDateConve

Java处理日期和时间

/**      * 获得当前时间所在月份的上个月的最后一天所在日期<br>      *      * @return      */     public  String getLastMonthDay() {      SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");      Calendar calendar = Calendar.getInstance();       int mont

mongodb-MongoDB 3.0 Java Driver在Linux Server下多线程插入数据异常

问题描述 MongoDB 3.0 Java Driver在Linux Server下多线程插入数据异常 使用MongoDB 3.0版本,部署环境为vSphere构建虚拟机,使用Java driver(3.0.0rc1)多线程写入数据到MongoDB,异常信息如下所示: Caused by: java.lang.NullPointerException at com.mongodb.connection.ProtocolHelper.isCommandOk(ProtocolHelper.java:

Java处理日期时间的方法汇总_java

一.java.util.Calendar介绍 Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR.MONTH.DAY_OF_MONTH.HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法.瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量. 二.简单示例 // 通过格式化输出日期 java.text.SimpleDateFormat format

Java字符编码转换过程说明

Java字符编码转换过程说明 />/> 常见问题 JVM JVM启动后,JVM会设置一些系统属性以表明JVM的缺省区域. user.language,user.region,file.encoding等. 可以使用System.getProperties()详细查看所有的系统属性. 如在英文操作系统(如UNIX)下,可以使用如下属性定义强制指定JVM为中文环境 -Dclient.encoding.override=GBK -Dfile.encoding=GBK -Duser.language=

asp的日期转换星座函数

经过长时间学习ASP.NETWeb,于是和大家分享一下,看完本文你肯定有不少收获,希望本文能教会你更多东西.学习ASP.NETWeb时,你可能会遇到相关问题,这里将介绍ASP.NETWeb问题的解决方法. 该结构分三个层次:表示层.业务层.数据层.数据层:代表物理数据库.业务层:负责数据层与表示层之间的数据传输.表示层:应用程序的客户端,它通过业务层来访问数据库. 表示层所操作的是驻留在内存中的本地数据,当需要更新数据库数据时,要通过业务层提供的更新方法实现.这样可以大大提高应用程序的性能,而且