【问题描述】升级json转换组件的时候,偶然发现时间不对。 查8个小时。
【解决过程】百度, 然后找到2个帖子,原来人家都遇到过了。
方法1: http://blog.csdn.net/thc1987/article/details/43851939
方法2:http://blog.csdn.net/zhangkezhi_471885889/article/details/49928663
-------------------------------【方法1】---------------------------------------------------------------------------------------
使用Jackson的@JsonFormat注解时出现少一天
比如数据库存的日期是2015-01-05,转成json则变成了2015-01-04
解决办法:
@JsonFormat(pattern="yyyy-MM-dd")
public Date getRegistDate() {
return this.registDate;
}
改成
@JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
public Date getRegistDate() {
return this.registDate;
}
加上时区即可,中国是东八区
-------------------------------【方法2--全局解决,我还没试】-----------------------------------------------
<mvc:annotation-driven>
<mvc:message-converters>
<bean
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="objectMapper">
<bean class="com.fasterxml.jackson.databind.ObjectMapper">
<!-- 处理responseBody 里面日期类型 -->
<property name="dateFormat">
<bean class="java.text.SimpleDateFormat">
<constructor-arg type="java.lang.String" value="yyyy-MM-dd HH:mm:ss" />
</bean>
</property>
<!-- 时区指定 -->
<property name="timeZone" value="GMT+8" />
<!-- 为null字段时不显示 -->
<property name="serializationInclusion">
<value type="com.fasterxml.jackson.annotation.JsonInclude.Include">NON_NULL</value>
</property>
</bean>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>