spring mvc 返回json 时间格式处理

从后台返回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 数据格式中,已经有了, 时间格式的字符串。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值