java日期時間格式化@JsonFormat與@DateTimeFormat的使用
如果要使用 @JsonFormat
這個註解的話,需要在項目中添加 jackson 相關的依賴包;
因為 @JsonFormat 註解不是 Spring 自帶的註解,所以使用該註解前需要添加 jackson 相關的依賴包。當然,如果是 SpringBoot 項目就不需要自己手動添加依賴瞭,因為在 spring-boot-start-web 下已經包含瞭 jackson 相關依賴
。
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.12.3</version> </dependency>
如果要使用 @DateTimeFormat
這個註解的話,需要在項目中添加 springframework 相關的依賴包
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.3.9</version> </dependency>
大傢可以去這個網站搜索想要的依賴:https://mvnrepository.com
@JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”,timezone = “GMT+8”)
將後端返回給前端的日期時間進行格式化,pattern為轉換後的格式,timezone為日期時間的時區默認情況下timeZone為GMT(即標準時區),而北京是在東八區,所以會造成差8小時
。
提示:@JsonFormat註解可以在屬性的上方,同樣可以在屬性對應的get方法上,兩種方式沒有區別
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime userCreateDate;
@DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
將前端傳給後端的日期時間進行格式化,pattern為轉換後的格式
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime userCreateDate;
POST請求
,我們一般會用@RequestBody接收JSON對象,如果對象裡面有日期時間類型數據的話,我們可以使用 @JsonFormat註解進行格式化,它既可以對出參進行格式化,也可以對入參進行格式化
GET請求
參數都是拼接在URL後面的,則需要使用@DateTimeFormat對入參進行格式化
,放到@RequestBody修飾的對象裡面是無效的
@JsonFormat是格式化json格式
的。
@DateTimeFormat是格式化 key=value
這種格式的。
需要取數據到前臺,也需要前臺數據傳到後臺,都需要進行時間格式的轉換,可以同時使用
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") private Date symstarttime;
SpringBoot的配置文件
application.yml
spring: # Content-Type 為 application/json, @JsonFormat(優先級高) 或 spring.jackson.date-format jackson: date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8 # Content-Type 為 application/x-www-form-urlencoded(普通表單上傳)spring.mvc.date-format(優先級高) 或 @DatetimeFormat mvc: format: date-time: yyyy-MM-dd HH:mm:ss
application.properties
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss spring.jackson.time-zone=GMT+8 spring.jackson.serialization.indent_output=true spring.jackson.serialization.fail_on_empty_beans=false
到此這篇關於java日期時間格式化@JsonFormat與@DateTimeFormat的使用的文章就介紹到這瞭,更多相關java @JsonFormat與@DateTimeFormat內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Java前後端時間格式的轉化方式
- Java日期轉換註解配置date format時間失效
- springboot 返回json格式數據時間格式配置方式
- springboot2中使用@JsonFormat註解不生效的解決
- springboot前端傳參date類型後臺處理的方式