在SpringBoot中配置日期格式化的方法詳解
我們先了解下,為什么需要配置日期格式化?
通常情況下,發(fā)起一個 Http 請求,Spring Boot 會根據(jù)請求路徑映射到指定 Controller 上的某個方法的參數(shù)上,接著,Spring 會自動進(jìn)行類型轉(zhuǎn)換。
對于日期類型的參數(shù),Spring 默認(rèn)是沒有配置如何將字符串轉(zhuǎn)換成日期類型的
未配置日期格式化會如何?
我們新建一個 Web 項目,并定義一個接口:
package site.exception.springbootdateformat.controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import site.exception.springbootdateformat.entity.User;
/**
* @time 21:03
* @discription
**/
@RestController
public class UserController {
/**
* 定義一個創(chuàng)建用戶的接口
* @param user
* @return
*/
@PostMapping("/user")
public String createUser(User user) {
// 打印創(chuàng)建時間
System.out.println(user.getCreateTime().toString());
return "Create user success !";
}
}
User.java:
package site.exception.springbootdateformat.entity;
import java.io.Serializable;
import java.util.Date;
/**
* @time 21:00
* @discription
**/
public class User implements Serializable {
/**
* 用戶名
*/
private String username;
/**
* 密碼
*/
private String password;
/**
* 創(chuàng)建時間
*/
private Date createTime;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
}
用 Postman 工具發(fā)起對該接口的表單請求,看看結(jié)果:

服務(wù)報錯,無法將字符串類型轉(zhuǎn)換成 java.util.Date 類型。
配置日期格式化
要讓 Spring Boot 能夠按照指定的格式進(jìn)行日期類型轉(zhuǎn)換,需要做以下步驟:
- 定義一個
MvcConfig類,讓其實現(xiàn)WebMvcConfigurer接口; - 重寫
addFormatters方法; - 添加一個
DateFormatter;
package site.exception.springbootdateformat.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.format.FormatterRegistry;
import org.springframework.format.datetime.DateFormatter;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* @author www.exception.site (exception 教程網(wǎng))
* @date 2019/2/16
* @time 20:55
* @discription
**/
@Configuration
public class MvcConfig implements WebMvcConfigurer {
/**
* 配置日期格式化
* @param registry
*/
@Override
public void addFormatters(FormatterRegistry registry) {
registry.addFormatter(new DateFormatter("yyyy-MM-dd HH:mm:ss"));
}
}
接下來,再次以表單的形式訪問 /user 接口,看看效果:

正確輸出 Create user Success ! 接口,并且控制臺,也打印了 createTime 值,說明 Spring Boot 已經(jīng)自動幫我們做了轉(zhuǎn)換操作:

至此,如何在 Spring Boot 中配置全局的日期格式化就完成了!
注意:本節(jié)中的轉(zhuǎn)換僅支持表單形式請求,不支持
application/json的請求方式!
以上就是在SpringBoot中配置日期格式化的方法詳解的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot日期格式化的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
java?mybatis如何操作postgresql?array數(shù)組類型
這篇文章主要介紹了java?mybatis如何操作postgresql?array數(shù)組類型,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01
selenium高效應(yīng)對Web頁面元素刷新的實例講解
今天小編就為大家分享一篇selenium高效應(yīng)對Web頁面元素刷新的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05
Spring在多線程下@Resource注入為null的問題
這篇文章主要介紹了Spring在多線程下@Resource注入為null的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02
Java Set集合及其子類HashSet與LinkedHashSet詳解
這篇文章主要介紹了Java Set集合及其子類HashSet與LinkedHashSet詳解,文章通過Set集合存儲原理展開文章主題相關(guān)介紹,感興趣的小伙伴可以參考一下2022-06-06
selenium-java實現(xiàn)自動登錄跳轉(zhuǎn)頁面方式
利用Selenium和Java語言可以編寫一個腳本自動刷新網(wǎng)頁,首先,需要確保Google瀏覽器和Chrome-Driver驅(qū)動的版本一致,通過指定網(wǎng)站下載對應(yīng)版本的瀏覽器和驅(qū)動,在Maven項目中添加依賴,編寫腳本實現(xiàn)網(wǎng)頁的自動刷新,此方法適用于需要頻繁刷新網(wǎng)頁的場景,簡化了操作,提高了效率2024-11-11
Android Home鍵監(jiān)聽的實現(xiàn)代碼
這篇文章主要介紹了Android Home 鍵監(jiān)聽的實現(xiàn)代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-12-12

