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