spring mvc json 時間格式處理
阿新 • • 發佈:2019-02-20
從後臺返回json格式的資料,timestamp 型別的資料,在前臺顯示為long型別的, 很是苦惱, 研究了很長時間,下面總結一下:
SpringMVC使用@ResponseBody時返回json的日期格式
前提了解: @ResponseBody 返回json字串的核心類是org.springframework.http.converter.json.MappingJacksonHttpMessageConverter,它使用了Jackson 這個開源的第三方類庫。詳見下一篇文章。
出現問題: 使用@ResponseBody時返回json字串的日期格式。Date型別屬性預設返回一個Long型的時間戳,怎樣能夠返回自定義的日期格式?
解決方案:目前有兩種方式實現,
方法一:全域性處理(這種方法我沒試驗過)
<mvc:annotation-driven> <!-- 處理responseBody 裡面日期型別 --> <mvc:message-converters> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="objectMapper"> <bean class="com.fasterxml.jackson.databind.ObjectMapper"> <property name="dateFormat"> <bean class="java.text.SimpleDateFormat"> <constructor-arg type="java.lang.String" value="yyyy-MM-dd HH:mm:ss" /> </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 資料格式中,已經有了, 時間格式的字串。