springMVC返回json数据时date类型数据被转成long类型

时间:2023-03-08 20:35:45

在项目的过程中肯定会遇到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")
  1. public Date getCreateDate() {
  2. return createDate;
  3. }

缺点:当系统中有多个date属性的时候 需要一个个的添加注解,很麻烦,后期修改也很不方便

优点:可以自定义每个时间属性的时间格式

2.springMVC配置文件配置统一返回格式:

  1. <!-- 开启mvc注解 -->
  2. <mvc:annotation-driven >
  3. <!-- 处理responseBody 里面日期类型 -->
  4. <mvc:message-converters>
  5. <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
  6. <property name="objectMapper">
  7. <bean class="com.fasterxml.jackson.databind.ObjectMapper">
  8. <property name="dateFormat">
  9. <bean class="java.text.SimpleDateFormat">
  10. <constructor-arg type="java.lang.String" value="yyyy-MM-dd HH:mm:ss" />
  11. </bean>
  12. </property>
  13. </bean>
  14. </property>
  15. </bean>
  16. </mvc:message-converters>
  17. </mvc:annotation-driven>

缺点:系统中所有时间类型的属性的格式全部一样,不能自定义

有点:可以减少配置,后期如果有改动,只需要修改一处即可

方法1 2 都可以  根据自己项目的情况而定了!