1. 程式人生 > >spring mvc json 時間格式處理

spring mvc json 時間格式處理

從後臺返回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 資料格式中,已經有了, 時間格式的字串。