理解和使用@DateTimeFormat和@JsonFormat注解


 詳細的理解參照

https://blog.csdn.net/qq_28483283/article/details/81326365

 

         兩者使用時,都要注意!自己想要的時間類型是什么樣的,如果只是用到日期到天,那么格式就是(pattern=”yyyy-MM-dd”),想要時分秒的話,那么就要加上HH:mm:ss,因為前后台都需要傳數據,所以需要保持一致,否則就會報錯誤,比如:日志管理的時候,我沒有加時分秒,但是我頁面傳遞了時分秒,所以導致數據進入后台時分秒是00:00:00,就會導致同一天的數據查詢為空的bug,注意

 

 

@JsonFormat@JSONField@DateTimeFormat的使用以及其區別

1、JsonFormat來源於jackson,Jackson是一個簡單基於Java應用庫,Jackson可以輕松的將Java對象轉換成json對象和xml文檔,同樣也可以將json、xml轉換成Java對象。Jackson所依賴的jar包較少,簡單易用並且性能也要相對高些,並且Jackson社區相對比較活躍,更新速度也比較快。

2、JSONField來源於fastjson,是阿里巴巴的開源框架,主要進行JSON解析和序列化。

3、DateTimeFormat是spring自帶的處理框架,主要用於將時間格式化。

 

@DateTimeFormat使用方法:

我們可以使用@DateTimeFormat注解將一個字符串轉成一個Date對象,pojo類上的哪個Date類型的字段需要,就需要用@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")   標記,這樣前端頁面傳遞過來的String類型的時間  '2016-11-11 11:11:11' 會轉換為 Date 類型

原因是:頁面將數據傳到后台,是以字符串的形式。所以時間格式會出錯。加上此注解,后台可解析時間格式的字符串。

但需要注意一下事項:

1.如果是小寫的hh,那個值代表着1-12,比如,我是在下午16:30傳入參數的,而小寫的h最大只能接受12的值,傳入16就出錯了,所有無法將String轉為Date類型。

2. 可以使用在字段上也可以使用在方法中。如:   public   String

test2(@RequestParam("uid") int id,

@DateTimeFormat(pattern="yyyy-MM-dd")Date date,

UserInfo user) {}

3.需要導入joda-time.jar包,maven的配置方式為:

 <dependency>

<groupId>joda-time</groupId>

<artifactId>joda-time</artifactId>

<version>2.9.6</version>

</dependency>

4.需要啟動mvc中的注解驅動 <mvc:annotation-driven />

 xmlns:mvc="http://www.springframework.org/schema/mvc"

                http://www.springframework.org/schema/mvc

                http://www.springframework.org/schema/mvc/spring-mvc.xsd">

     <!-- 啟用mvc中的注解驅動 -->

     <mvc:annotation-driven></mvc:annotation-driven> 

 

@JsonFormat

但是后台傳到前台,前台沒辦法解析。需要做如下操作。

@JsonFormat(pattern=”yyyy-MM-dd”)

用法 為在屬性值上 @JsonFormat(pattern=”yyyy-MM-dd”,timezone=”GMT+8),如果直接使用 @JsonFormat(pattern=”yyyy-MM-dd”)就會出現2018-08-01 08:00:00的情況, 會相差8個小時,因為我們是東八區(北京時間)。所以我們在格式化的時候要指定時區(timezone )

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM