spring mvc 返回json 時間格式處理
阿新 • • 發佈:2019-02-20
從後臺返回json格式的資料,timestamp 與datetime 型別的資料,在前臺顯示為long型別的, 很是苦惱, 研究了很長時間,下面總結一下:
SpringMVC使用@ResponseBody時返回json的日期格式
前提了解: @ResponseBody 返回json字串的核心類是org.springframework.http.converter.json.MappingJacksonHttpMessageConverter,它使用了Jackson 這個開源的第三方類庫。詳見下一篇文章。
出現問題: 使用@ResponseBody時返回json字串的日期格式。Date型別屬性預設返回一個Long型的時間戳,怎樣能夠返回自定義的日期格式?
解決方案:目前有兩種方式實現,
方法一:全域性處理(這種方法我沒試驗過)
- <mvc:annotation-driven>
- <!-- 處理responseBody 裡面日期型別 -->
- <mvc:message-converters>
- <beanclass="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
-
<propertyname=
- <beanclass="com.fasterxml.jackson.databind.ObjectMapper">
- <propertyname="dateFormat">
- <beanclass="java.text.SimpleDateFormat">
-
<constructor-argtype="java.lang.String"
- </bean>
- </property>
- </bean>
- </property>
- </bean>
- </mvc:message-converters>
- </mvc:annotation-driven>
方法二:引入jackson-annotations-2.5.0.jar jackson-core-2.5.0.jar jackson-databind-2.5.0.jar 三個包
spring 的註解中自帶格式轉換
在實體類加上如下配置:
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
- public Date x_date; // 日期;
務必加上:timezone="GMT+8" , 東八區, 否則 會出現時間少一天的情況。
OK 已經解決, 返回的json 資料格式中,已經有了, 時間格式的字串。