若是咱们用Java的new Date()
方式建立时间,保存到MongoDB后,会发现MongoDB中的时间老是比当前时间少8个小时,这是由于MongoDB存储时区用的是UTC+0:00
,中国的时区为UTC+8:00
。
解决办法为:在程序代码中添加时间转换,若是是Spring MVC返回JSON的应用,能够直接在实体类中Date
类型的属性上添加以下注解:数据库
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
注:@JsonFormat
注解加到get方法上。code
若是使用的不是Spring MVC + JSON,也能够本身实现一个时区的转换器,用来统一转换Date类型的属性,暂时还没找到如何在MongoDB数据库端设置时区的办法,后面慢慢研究。orm