java中的實體類時間格式化
實體類時間格式化
java 實體類 時間格式化注解
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date time;
pattern
:時區(qū)timezone
:時區(qū)
@JsonFormat 默認是標準時區(qū)的時間,多出現(xiàn)少8小時的情況
使用時,按需求加上時區(qū) 北京時間 東八區(qū) timezone=”GMT+8”
作用:后臺的時間 格式化 發(fā)送到前臺
@DateTimeFormat 接受前臺的時間格式 傳到后臺的格式
實體類時間類型屬性常用注解
假如有如下實體類:
import java.util.Date; public class DateVo { private Date date; public void setDate(Date date){ this.date = date; } public Date getDate(){ return date; } }
提供如下接口:
@RestController @RequestMapping("/date") public class DateController { @RequestMapping("test") public DateVo getDate(DateVo vo){ System.out.println(vo.getDate()); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String date = sdf.format(vo.getDate()); System.out.println(date); DateVo dateVo = new DateVo(); dateVo.setDate(new Date()); return dateVo; } }
直接訪問接口(參數(shù)vo: 2020-12-25 11:22:33),會拋出以下異常:
理由很簡單:類型參數(shù)不匹配,傳入?yún)?shù)vo的date為字符串類型,而要求時Date類型,這就需要入?yún)⒏袷交?/p>
注解一:DateTimeFormt(入?yún)⒏袷交?
注解@DateTimeFormt是由spring框架提供的,作用就是實現(xiàn)在入?yún)⒏袷交^程中對時間類型參數(shù)指定格式。
對上述實體類做如下修改:
public class DateVo { @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") private Date date; public void setDate(Date date){ this.date = date; } public Date getDate(){ return date; } }
再次訪問接口(參數(shù)vo: 2020-12-25 11:22:33),訪問成功,在控制臺會打印如下內(nèi)容:
Fri Dec 25 11:22:33 CST 2020
2020-12-25 11:22:33
同時向前端返回:
"2020-12-25T03:40:26.625+00:00"
對于這個返回內(nèi)容可能不符合前端時間格式要求,需要對其進行出參格式化
注解二:JsonFormt(出參格式化)
注解@JsonFormt是由jackson提供的,由于spring框架中默認集成的json工具是jackson(國內(nèi)使用更廣泛的fastjson,其提供注解@JSONField),因此使用注解@JsonFormt不需要另外引入依賴,再次對實體類修改:
public class DateVo { @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @JsonFormat( pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8" ) private Date date; public void setDate(Date date){ this.date = date; } public Date getDate(){ return date; } }
繼續(xù)訪問接口(參數(shù)vo: 2020-12-25 11:22:33)返回:
2020-12-25 11:40:26
注意:在使用注解@JsonFormt時必須要指定時區(qū),默認情況下為0時區(qū),于北京時間(東8時區(qū))相差8個小時
注解三:JSONField(出參格式化)
在國內(nèi)使用更多是Alibaba 開源的fasejson,其同樣提供了指定時間格式的注解。使用spring框架開發(fā)時需要注意的是spring框架中沒有集成fastjson,因此需要在pom文件中引入其依賴,實體類修改如下:
public class DateVo { @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @JSONField(format="yyyy-MM-dd HH:mm:ss") private Date date; public void setDate(Date date){ this.date = date; } public Date getDate(){ return date; } }
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
使用Java創(chuàng)建數(shù)據(jù)透視表并導出為PDF的方法
數(shù)據(jù)透視分析是一種強大的工具,可以幫助我們從大量數(shù)據(jù)中提取有用信息并進行深入分析,本文將介紹如何使用Java來構建PivotTable以及實現(xiàn)數(shù)據(jù)透視分析,并將其導出為PDF2023-10-10Java?數(shù)據(jù)結構與算法系列精講之單向鏈表
單向鏈表特點是鏈表的鏈接方向是單向的,訪問要通過順序讀取從頭部開始。鏈表是使用指針構造的列表,是由一個個結點組裝起來的,又稱為結點列表。其中每個結點都有指針成員變量指向列表中的下一個結點,head指針指向第一個結點稱為表頭,而終止于最后一個指向nuLL的指針2022-02-02Spring HandlerInterceptor實現(xiàn)原理代碼解析
這篇文章主要介紹了Spring HandlerInterceptor實現(xiàn)原理代碼解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-10-10SpringBoot核心@SpringBootApplication使用介紹
這篇文章主要介紹了SpringBoot核心@SpringBootApplication的使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03Mybatis?Mapper中多參數(shù)方法不使用@param注解報錯的解決
這篇文章主要介紹了Mybatis?Mapper中多參數(shù)方法不使用@param注解報錯的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教。2022-01-01