spring mvc 返回json 时间格式处理

来源:互联网 发布:淘宝代购便宜那么多 编辑:程序博客网 时间:2024/05/21 11:15

从后台返回json格式的数据,timestamp 与datetime 类型的数据,在前台显示为long类型的, 很是苦恼, 研究了很长时间,下面总结一下:

SpringMVC使用@ResponseBody时返回json的日期格式

 

     前提了解: @ResponseBody 返回json字符串的核心类是org.springframework.http.converter.json.MappingJacksonHttpMessageConverter,它使用了Jackson 这个开源的第三方类库。详见下一篇文章。

    出现问题: 使用@ResponseBody时返回json字符串的日期格式。Date类型属性默认返回一个Long型的时间戳,怎样能够返回自定义的日期格式?

    解决方案:目前有两种方式实现,


方法一:全局处理(这种方法我没试验过)

[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. <mvc:annotation-driven>    
  2.     <!-- 处理responseBody 里面日期类型 -->    
  3.         <mvc:message-converters>    
  4.             <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">    
  5.                 <property name="objectMapper">    
  6.                     <bean class="com.fasterxml.jackson.databind.ObjectMapper">    
  7.                         <property name="dateFormat">    
  8.                             <bean class="java.text.SimpleDateFormat">    
  9.                                 <constructor-arg type="java.lang.String" value="yyyy-MM-dd HH:mm:ss" />    
  10.                             </bean>    
  11.                         </property>    
  12.                     </bean>    
  13.                 </property>    
  14.             </bean>    
  15.         </mvc:message-converters>    
  16.     </mvc:annotation-driven>    

方法二:引入jackson-annotations-2.5.0.jar  jackson-core-2.5.0.jar  jackson-databind-2.5.0.jar 三个包

spring 的注解中自带格式转换

在实体类加上如下配置:

[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss"timezone = "GMT+8")  
  2. public Date x_date; // 日期;  

务必加上:timezone="GMT+8"  , 东八区, 否则 会出现时间少一天的情况。


OK 已经解决, 返回的json 数据格式中,已经有了, 时间格式的字符串。

原创粉丝点击