Java關(guān)于后端怎么去接收Date、LocalDateTime類型的參數(shù)詳解
1、接收date類型的參數(shù)
Date類型后端入?yún)⒌母袷侥J(rèn)為2019/01/18 11:11:11
1.1、Get方式傳參
Get方式傳參 是 沒有時區(qū)的影響的
@JsonFormat的作用: 返回給前端的時間是經(jīng)過@JsonFormat格式化的時間。
@DateTimeFormat的作用: 前端需要按照@DateTimeForma的格式進(jìn)行傳參
示例:
Date 類型直接作為參數(shù)的情況
/**
* http://localhost:8080/test1?date=2019-01-18 11:11:11
*/
@RequestMapping(value = "/test1",method = RequestMethod.GET)
@ResponseBody
public void test1(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date date){
System.out.println(date);//Fri Jan 18 11:11:11 CST 2019
}Date類型屬性的實(shí)體類作為參數(shù)的情況
public class DateTestVO {
private Date finishDate;
}
@RequestMapping(value = "/test2",method = RequestMethod.GET)
@ResponseBody
public void test2(DateTestVO vo){
System.out.println(vo);
System.out.println(vo.getFinishDate());
return vo;
}實(shí)體類中沒有使用注解的時候
使用的是默認(rèn)格式的入?yún)ⅲ?
http://localhost:8080/test2?finishDate=2019/01/18 11:11:11
打印日志,正常:
DateTestVO{finishDate=Fri Jan 18 11:11:11 CST 2019}
Fri Jan 18 11:11:11 CST 2019
返回的是沒有經(jīng)過格式化的時間:
{
"finishDate": "2019-01-18T03:11:11.000+0000"
}實(shí)體類中使用@JsonFormat注解的時候
@JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”,timezone=“GMT+8”)
使用的是默認(rèn)格式的入?yún)ⅲ?
http://localhost:8080/test2?finishDate=2019/01/18 11:11:11
打印日志,正常:
DateTestVO{finishDate=Fri Jan 18 11:11:11 CST 2019}
Fri Jan 18 11:11:11 CST 2019
返回@JsonFormat格式的時間:
{
"finishDate": "2019-01-18 11:11:11"
}實(shí)體類中使用@JsonFormat和@DateTimeFormat注解的時候
@JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”,timezone=“GMT+8”)
@DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
使用@DateTimeFormat格式的入?yún)ⅲ?
http://localhost:8080/test2?finishDate=2019-01-18 11:11:11
打印日志,正常:
DateTestVO{finishDate=Fri Jan 18 11:11:11 CST 2019}
Fri Jan 18 11:11:11 CST 2019
返回@JsonFormat格式的時間:
{
"finishDate": "2019-01-18 11:11:11"
}1.2、POST方式傳參
有時區(qū)的影響
@JsonFormat的作用:
1、后臺接收后,沒有時區(qū)的影響
2、返回給前端是格式化的時間
3、后端的入?yún)凑誁JsonFormat的格式傳參(并沒有使用@DateTimeFormat來格式化后端的入?yún)ⅲ?/p>
示例:
public class DateTestVO {
private Date finishDate;
}
@RequestMapping(value = "/test3",method = RequestMethod.POST)
@ResponseBody
public DateTestVO test3(@RequestBody DateTestVO vo){
System.out.println(vo);
System.out.println(vo.getFinishDate());
return vo;
}實(shí)體類中沒有使用注解的時候
入?yún)ⅲ?
{
"finishDate": "2019-01-18"
}
打印日志,多了8個小時:
DateTestVO{finishDate=Fri Jan 18 08:00:00 CST 2019}
Fri Jan 18 08:00:00 CST 2019
返回結(jié)果,沒有多出8個小時、沒有格式化的時間:
{
"finishDate": "2019-01-18T00:00:00.000+0000"
} 入?yún)ⅲ?
{
"finishDate": "2019-01-18T11:11:11"
}
打印日志,多了8個小時:
DateTestVO{finishDate=Fri Jan 18 19:11:11 CST 2019}
Fri Jan 18 19:11:11 CST 2019
返回結(jié)果,沒有多出8個小時、沒有格式化的時間:
{
"finishDate": "2019-01-18T11:11:11.000+0000"
}實(shí)體類中使用@JsonFormat注解的時候
public class DateTestVO {
//@JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private Date finishDate;
}
@RequestMapping(value = "/test3",method = RequestMethod.POST)
@ResponseBody
public DateTestVO test3(@RequestBody DateTestVO vo){
System.out.println(vo);
System.out.println(vo.getFinishDate());
return vo;
}注解為:
@JsonFormat(pattern = “yyyy-MM-dd”,timezone=“GMT+8”)
入?yún)ⅲ?
{
"finishDate": "2019-01-18"
}
打印日志,正常:
DateTestVO{finishDate=Fri Jan 18 00:00:00 CST 2019}
Fri Jan 18 00:00:00 CST 2019
返回@JsonFormat格式的時間:
{
"finishDate": "2019-01-18"
}注解為:
@JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”,timezone=“GMT+8”)
入?yún)ⅲ?
{
"finishDate": "2019-01-18 11:11:11"
}
打印日志,正常:
DateTestVO{finishDate=Fri Jan 18 11:11:11 CST 2019}
Fri Jan 18 11:11:11 CST 2019
返回@JsonFormat格式的時間:
{
"finishDate": "2019-01-18 11:11:11"
}總結(jié):
為了同時照顧GET、POST方式,@JsonFormat、@DateTimeForma都使用。
2、后端接收LocalDateTime類型的參數(shù)
LocalDateTime 在GMT+8 默認(rèn)格式為 yyyy-MM-ddTHH:mm:ss,如 2021-01-01T10:15:12
2.1、GET方式傳參
public class DateTestVO {
//出參的格式化
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
//入?yún)⒌母袷交?
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date finishDate;
//入?yún)⒌母袷交?
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime overDate;
}
@RequestMapping(value = "/test2",method = RequestMethod.GET)
@ResponseBody
public DateTestVO test2(DateTestVO vo){
System.out.println(vo);
System.out.println(vo.getFinishDate());
System.out.println(vo.getOverDate());
return vo;
}overDate使用注解:
@DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
入?yún)ⅲ?
http://localhost:8080/test2?finishDate=2019-01-18 11:11:11&overDate=2019-01-18 11:11:11
打印日志,正常:
DateTestVO{finishDate=Fri Jan 18 11:11:11 CST 2019, overDate=2019-01-18T11:11:11}
Fri Jan 18 11:11:11 CST 2019
2019-01-18T11:11:11
返回結(jié)果,overDate是未格式化的時間:
{
"finishDate": "2019-01-18 11:11:11",
"overDate": "2019-01-18T11:11:11"
}overDate使用注解:
@JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”,timezone=“GMT+8”)
@DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
入?yún)ⅲ?
http://localhost:8080/test2?finishDate=2019-01-18 11:11:11&overDate=2019-01-18 11:11:11
打印日志,正常:
DateTestVO{finishDate=Fri Jan 18 11:11:11 CST 2019, overDate=2019-01-18T11:11:11}
Fri Jan 18 11:11:11 CST 2019
2019-01-18T11:11:11
返回結(jié)果,正常:
{
"finishDate": "2019-01-18 11:11:11",
"overDate": "2019-01-18 11:11:11"
}2.2、POST方式傳參
public class DateTestVO {
//出參的格式化
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
//入?yún)⒌母袷交?
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date finishDate;
private LocalDateTime overDate;
}
@RequestMapping(value = "/test3",method = RequestMethod.POST)
@ResponseBody
public DateTestVO test3(@RequestBody DateTestVO vo){
System.out.println(vo);
System.out.println(vo.getFinishDate());
System.out.println(vo.getOverDate());
return vo;
}入?yún)?,overDate里邊包含了T:
{
"finishDate": "2019-01-18 11:11:11",
"overDate": "2019-01-18T11:11:11"
}
打印日志,正常:
DateTestVO{finishDate=Fri Jan 18 11:11:11 CST 2019, overDate=2019-01-18T11:11:11}
Fri Jan 18 11:11:11 CST 2019
2019-01-18T11:11:11
返回結(jié)果,overDate包含T:
{
"finishDate": "2019-01-18 11:11:11",
"overDate": "2019-01-18T11:11:11"
}overDate使用注解:
@JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”,timezone=“GMT+8”)
入?yún)ⅲ?
{
"finishDate": "2019-01-18 11:11:11",
"overDate": "2019-01-19 11:11:11"
}
打印日志,正常:
DateTestVO{finishDate=Fri Jan 18 11:11:11 CST 2019, overDate=2019-01-19T11:11:11}
Fri Jan 18 11:11:11 CST 2019
2019-01-19T11:11:11
返回結(jié)果,正常:
{
"finishDate": "2019-01-18 11:11:11",
"overDate": "2019-01-19 11:11:11"
}overDate使用注解:
@JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”,timezone=“GMT+8”)
@DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
入?yún)ⅲ?
{
"finishDate": "2019-01-18 11:11:11",
"overDate": "2019-01-18 11:11:11"
}
打印日志,正常:
DateTestVO{finishDate=Fri Jan 18 11:11:11 CST 2019, overDate=2019-01-18T11:11:11}
Fri Jan 18 11:11:11 CST 2019
2019-01-18T11:11:11
返回結(jié)果,正常:
{
"finishDate": "2019-01-18 11:11:11",
"overDate": "2019-01-18 11:11:11"
}SpringBoot 中LocalDateTime日期格式化:
https://blog.csdn.net/w851685279/article/details/114685542
有問題,請多多指正!
到此這篇關(guān)于Java關(guān)于后端怎么去接收Date、LocalDateTime類型的參數(shù)詳解的文章就介紹到這了,更多相關(guān)Java接收Date、LocalDateTime類型參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- java用LocalDateTime類獲取當(dāng)天時間、前一天時間及本周/本月的開始和結(jié)束時間
- 如何使用Java?8中DateTimeFormatter類型轉(zhuǎn)換日期格式詳解
- Java中@DateTimeFormat @JsonFormat失效原因及測試填坑
- Java8中對于LocalDateTime的序列化和反序列化問題
- Java8中的LocalDateTime你會使用了嗎
- java Date獲取年月日時分秒的實(shí)現(xiàn)方法
- java整數(shù)(秒數(shù))轉(zhuǎn)換為時分秒格式的示例
- Java輸出系統(tǒng)當(dāng)前的日期(年月日時分秒毫秒)
- Java里得到00:00:00格式的時分秒的Timestamp
- java datetime數(shù)據(jù)類型去掉時分秒的案例詳解
相關(guān)文章
Java純代碼實(shí)現(xiàn)導(dǎo)出pdf合并單元格
這篇文章主要為大家詳細(xì)介紹了Java如何純代碼實(shí)現(xiàn)導(dǎo)出pdf與合并單元格功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-12-12
Swagger2匹配多個controller代碼實(shí)例
這篇文章主要介紹了Swagger2匹配多個controller代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-09-09
Java通過切面實(shí)現(xiàn)統(tǒng)一處理Token設(shè)置用戶信息
這篇文章主要介紹了Java切面統(tǒng)一處理Token設(shè)置用戶信息,常見的后端開發(fā)中,接口請求中一般前端都是先通過用戶登錄獲取token,每次接口請求都需要在頭信息中攜帶token信息,后端每次都需要手動處理token信息,從token信息中解析獲取用戶信息,需要的朋友可以參考下2023-10-10
運(yùn)用springboot搭建并部署web項目的示例
這篇文章主要介紹了運(yùn)用springboot搭建并部署web項目的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06
IDEA設(shè)置maven修改settings.xml配置文件無法加載倉庫的解決方案
這篇文章主要介紹了IDEA設(shè)置maven修改settings.xml配置文件無法加載倉庫的解決方案,幫助大家更好的利用IDEA進(jìn)行JAVA的開發(fā)學(xué)習(xí),感興趣的朋友可以了解下2021-01-01

