1. 程式人生 > >SpringMVC中在使用@ResponseBody時如何將Date型別的日期返回指定格式的json資料

SpringMVC中在使用@ResponseBody時如何將Date型別的日期返回指定格式的json資料

hello,我的小可愛們,前天去參加了人生第一次比較正式的面試,總體還算比較順利,今天就已經拿到了offer,心裡還是蠻開心的,但我深刻的知道,作為一個非計算機專業出身的我還有更長的路要走,我還是要拿出十二分的努力去學習,去快速成長,在這裡給自己定一個目標,明年真正畢業前,努力讓自己的能力成長到可以達到月薪過萬的水準。好了,廢話不多說,開始今天的分享。

同樣最近在做專案的過程中,發現實體類中屬性為Date型別的值在使用@ResponseBody轉換成json資料型別返回給前端頁面時,返回的是一個Long型的數值,這種顯示方式顯然不是我們想要的,那麼我們該怎麼辦才能把Long型數值轉換成我們想要的格式顯示給使用者看呢?下面是我總結的一些方法,大家可以參考一下(假設返回的那個Long型數值為time)。

第一種:利用javascript,將time作為引數建立一個新的date型別的物件,然後呼叫date的toLocaleDateString()方法,該方法會根據本地時間格式,把Date物件的日期部分轉換為字串,當然如果你想再加上時間部分,可以呼叫toLocaleTimeString()方法。

2017-09-15_005826.png

這樣前端頁面就不會再顯示一個長串的數字啦。

第二種:我們可以編寫一個日期格式轉換類,讓其繼承抽象類JsonSerializer,然後重寫其中的serialize方法,最後在javaBean的響應屬性的getter方法加上註解@JsonSerialize即可實現。這種方法相對第一種方法比較自由,我們可以完全按照自己想要的格式去轉換。具體如下:

2017-09-15_010742.png

2017-09-15_010850.png

第三種:我們可以完全使用註解的方式進行日期格式的轉換,具體如下:

2017-09-15_011448.png

給你們看看效果

2017-09-15_011531.png

第四種:以上的方式都是針對單一屬性,如果我們想讓所有實體類中的Date型別的屬性轉換成指定格式,我們可以在spring-mvc.xml檔案中進行以下配置:

2017-09-15_095339.png

以上所有方式,親測可用,大家可以在使用的過程中靈活選擇。