爷的眼睛闪亮
insideDotNet En_summerGarden

在项目的过程中肯定会遇到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.  
    }
  4.  
     

缺点:当系统中有多个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 都可以  根据自己项目的情况而定了!

posted on 2018-09-07 15:04  爷的眼睛闪亮  阅读(669)  评论(0)    收藏  举报