java中的實(shí)體類時間格式化
實(shí)體類時間格式化
java 實(shí)體類 時間格式化注解
@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 默認(rèn)是標(biāo)準(zhǔn)時區(qū)的時間,多出現(xiàn)少8小時的情況
使用時,按需求加上時區(qū) 北京時間 東八區(qū) timezone=”GMT+8”
作用:后臺的時間 格式化 發(fā)送到前臺
@DateTimeFormat 接受前臺的時間格式 傳到后臺的格式
實(shí)體類時間類型屬性常用注解
假如有如下實(shí)體類:
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框架提供的,作用就是實(shí)現(xiàn)在入?yún)⒏袷交^程中對時間類型參數(shù)指定格式。

對上述實(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)容可能不符合前端時間格式要求,需要對其進(jìn)行出參格式化
注解二:JsonFormt(出參格式化)
注解@JsonFormt是由jackson提供的,由于spring框架中默認(rèn)集成的json工具是jackson(國內(nèi)使用更廣泛的fastjson,其提供注解@JSONField),因此使用注解@JsonFormt不需要另外引入依賴,再次對實(shí)體類修改:
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ū),默認(rèn)情況下為0時區(qū),于北京時間(東8時區(qū))相差8個小時
注解三:JSONField(出參格式化)
在國內(nèi)使用更多是Alibaba 開源的fasejson,其同樣提供了指定時間格式的注解。使用spring框架開發(fā)時需要注意的是spring框架中沒有集成fastjson,因此需要在pom文件中引入其依賴,實(shí)體類修改如下:
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)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
springboot中nacos-client獲取配置的實(shí)現(xiàn)方法
本文主要介紹了springboot中nacos-client獲取配置的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04
Java使用POI實(shí)現(xiàn)excel文件的導(dǎo)入和導(dǎo)出
這篇文章主要為大家詳細(xì)介紹了Java如何使用POI實(shí)現(xiàn)excel文件的導(dǎo)入和導(dǎo)出功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-12-12
Spring Mvc中傳遞參數(shù)方法之url/requestMapping詳解
在開發(fā)中,參數(shù)傳遞是必不可少的一個功能,下面這篇文章主要給大家介紹了關(guān)于Spring Mvc中傳遞參數(shù)方法之url/requestMapping的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。2017-07-07
Spring?Boot?集成?MyBatis?全面講解(最新推薦)
MyBatis 是一款優(yōu)秀的持久層框架,與 Spring Boot 集成后可以大大簡化開發(fā)流程,本文將全面講解如何在 Spring Boot 中集成 MyBatis,包括環(huán)境配置、基礎(chǔ)操作、高級功能和最佳實(shí)踐,需要的朋友可以參考下2024-12-12
Java利用讀寫的方式實(shí)現(xiàn)音頻播放代碼實(shí)例
這篇文章主要介紹了Java利用讀寫的方式實(shí)現(xiàn)音頻播放代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-11-11
java EasyExcel面向Excel文檔讀寫邏輯示例詳解
這篇文章主要為大家介紹了java EasyExcel面向Excel文檔讀寫邏輯示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07

