spring中時間格式化的兩種方法示例講解
spring中時間格式化的兩種方式
方法一:自己格式化
自己寫一個格式化的類,把date類型的時間傳進去:
public class DateUtil { public static String formatDate(Date date){ SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return simpleDateFormat.format(date); } }
重寫相關(guān)屬性的get方法:
public String getCreateTime() { if (createTime==null){ return ""; } return DateUtil.formatDate(createTime); }
然后獲取的時間就是正確的格式了。
方法二:配置
在配置文件中(.yml)配置:
# JSON序列化配置 Spring: jackson: date-format: yyyy-MM-dd HH:mm:ss # 日期格式
補充:Spring項目中時間格式化的方法
1. 前言
在 web
開發(fā)中,我們經(jīng)常會遇到前臺和后臺進行時間格式轉(zhuǎn)換交互,下面做一下總結(jié)
- 使用工具類
SimpleDateFormat
- 使用
@JsonFormat
- 使用
@JSONField
- 使用
@DateTimeFormat
- 使用第三方組件
Hutool
1.1. 使用工具類 SimpleDateFormat
對于這個工具類這里不做過多的贅述
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateTime = df.format(new Date());
1.2. 使用 @JsonFormat
@JsonFormat
來源于 Jackson
, Jackson
是一個簡單基于 Java
應用庫, Jackson
可以輕松的將 Java
對象轉(zhuǎn)換成 json
對象和 xml
文檔,同樣也可以將 json、xml
轉(zhuǎn)換成 Java
對象。 Jackson
所依賴的 jar
包較少,簡單易用并且性能也要相對高些,并且 Jackson
社區(qū)相對比較活躍,更新速度也比較快
public class Order { // timezone:是時間設(shè)置為東八區(qū),避免時間在轉(zhuǎn)換中有誤差 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private Date createDate; }
1.3. 使用 @JSONField
@JSONField
來源于 fastjson
,是阿里的開源框架,主要進行 JSON
解析和序列化
public class Order { @JSONField(format="yyyy-MM-dd HH:mm:ss") private Date time; }
1.4. 使用 @DateTimeFormat
@DateTimeFormat
是 spring
自帶的處理框架,主要用于將時間格式化
public class Order { @DateTimeFormat(pattern = "yyyy-MM-dd") private Date createDate; }
1.5. @JsonFormat
+ @DateTimeFormat
public class Order { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") @DateTimeFormat(pattern = "yyyy-MM-dd") private Date createDate; }
1.6. 使用第三方組件 Hutool
Hutool
是一個小而全的 Java
工具類庫,通過靜態(tài)方法封裝,降低相關(guān) API
的學習成本,提高工作效率
官網(wǎng):https://www.hutool.cn/
String dateTime1="2018-02-18 20:53:45"; String dateTime2="2018-02-18"; String dateTime3="20:53:45"; String dateTime4="2018-02-18 20:53"; //將不同的格式轉(zhuǎn)換為Date對象 Date date1=DateUtil.parse(dateTime1); System.out.println("date1:"+date1.toString()); Date date2=DateUtil.parse(dateTime2); System.out.println("date2:"+date2.toString()); Date date3=DateUtil.parse(dateTime3); System.out.println("date3:"+date3.toString()); Date date4=DateUtil.parse(dateTime4); System.out.println("date4:"+date4.toString()); //使用DateUtil.parse(String,String):Date 轉(zhuǎn)換為指定格式的Date對象 Date date5=DateUtil.parse(dateTime1, "yyyy-MM-dd"); System.out.println("date5:"+date5.toString());
http://chabaoo.cn/article/250370.htm
參考資料:
詳細的使用 API
參考
到此這篇關(guān)于spring中時間格式化的兩種方式的文章就介紹到這了,更多相關(guān)spring時間格式化內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
一文深入分析java.lang.ClassNotFoundException異常
這篇文章主要給大家介紹了關(guān)于java.lang.ClassNotFoundException異常的相關(guān)資料,java.lang.ClassNotFoundException是Java編程時經(jīng)常會遇到的一個異常,它表示JVM在嘗試加載某個類時未能找到該類,需要的朋友可以參考下2023-10-10mybatis中BigDecimal中的0存為null的坑及解決
在使用MyBatis進行數(shù)據(jù)庫操作時,若Java中屬性類型為BigDecimal且值為0,插入數(shù)據(jù)庫時可能會變?yōu)閚ull,而不是0,這個問題可能是由于MyBatis在處理BigDecimal類型時的弱類型判斷導致的,當BigDecimal變量與空字符串進行比較時,MyBatis可能將其視為null2024-10-10jcl與jul?log4j1?log4j2?logback日志系統(tǒng)機制及集成原理
這篇文章主要介紹了jcl與jul?log4j1?log4j2?logback的集成原理,Apache?Commons-logging?通用日志框架與日志系統(tǒng)的機制,有需要的朋友可以借鑒參考下2022-03-03java不用循環(huán)語句打印數(shù)組元素的實例
下面小編就為大家?guī)硪黄猨ava不用循環(huán)語句打印數(shù)組元素的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-03-03SpringBoot集成ElasticSearch實現(xiàn)minio文件內(nèi)容全文檢索
這篇文章詳細介紹了如何在Spring?Boot項目中集成Elasticsearch和Kibana,包括Docker安裝、中文分詞器安裝、后端代碼實現(xiàn)以及前端查詢組件封裝,需要的朋友可以參考下2024-11-11SpringBoot如何接收前端傳來的json數(shù)據(jù)
這篇文章主要介紹了SpringBoot如何接收前端傳來的json數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04