在项目的过程中肯定会遇到ajax请求,但是再用的过程中会发现,在数据库中好好的时间类型数据:2017-05-04 17:52:24 在转json的时候,得到的就不是时间格式了 而是145245121这样的long类型数据,但是如果你单独去请求该对象的该属性,得到的是正常的时间类型格式,后面查阅了一番,发现是SpringMvc框架在ajax请求转json的时候,会将date类型的数据转成long类型,解决的方法有如下几种:
1. 在date类型属性上加注解:
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
-
public Date getCreateDate() {
-
return createDate;
-
}
-
缺点:当系统中有多个date属性的时候 需要一个个的添加注解,很麻烦,后期修改也很不方便
优点:可以自定义每个时间属性的时间格式
2.springMVC配置文件配置统一返回格式:
-
<!-- 开启mvc注解 -->
-
<mvc:annotation-driven >
-
<!-- 处理responseBody 里面日期类型 -->
-
<mvc:message-converters>
-
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
-
<property name="objectMapper">
-
<bean class="com.fasterxml.jackson.databind.ObjectMapper">
-
<property name="dateFormat">
-
<bean class="java.text.SimpleDateFormat">
-
<constructor-arg type="java.lang.String" value="yyyy-MM-dd HH:mm:ss" />
-
</bean>
-
</property>
-
</bean>
-
</property>
-
</bean>
-
</mvc:message-converters>
-
</mvc:annotation-driven>
缺点:系统中所有时间类型的属性的格式全部一样,不能自定义
有点:可以减少配置,后期如果有改动,只需要修改一处即可
方法1 2 都可以 根据自己项目的情况而定了!