Spring日期格式化与时区调整设置
2016-12-30 本文已影响4187人
葉糖糖
在Spring MVC中经常需要返回json数据,对于日期类型数据可能会遇到返回格式化不对,返回的时间相差8小时等问题,今天我们一起来分享下在实际开发商过程中遇到的这两个问题。当然解决方法有很多种,本文中只选一种简单的方式。
- 日期返回数据没有格式化
解决办法:在model中,使用注解方式格式化。示例代码如下:
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
public Date getCreatetime() {
return createtime;
}
public void setCreatetime(Date createtime) {
this.createtime = createtime;
}
- 返回时间相差8个小时
解决办法:这个主要是因为时区的问题,只要在Spring的配置文件中设置好时区就好了。代码如下:
<mvc:annotation-driven>
<!-- 处理请求时返回json字符串的中文乱码问题 -->
<mvc:message-converters register-defaults="true">
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<constructor-arg value="UTF-8" />
</bean>
<!--处理时区问题-->
<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>
PS:酱紫我们就轻松解决了一个尴尬的问题了。祝小伙伴们学习愉快,元旦快乐!