最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java前端實現(xiàn)發(fā)送date類型的參數(shù)給后端

 更新時間:2025年06月24日 08:59:59   作者:yololee_  
這篇文章主要介紹了Java前端實現(xiàn)發(fā)送date類型的參數(shù)給后端方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

@DateTimeFormat

第一次:Get方式傳參-成功

這個時候是用的get請求方式,get是把參數(shù)數(shù)據(jù)隊列加到提交表單的ACTION屬性所指的URL中,值和表單內(nèi)各個字段一一對應(yīng)

/**
     * http://localhost:8080/intoParam?date=2019-01-18 11:11:11
     */
    @RequestMapping(value = "/intoParam",method = RequestMethod.GET)
    @ResponseBody
    public void intoParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date date){
        System.out.println(date);//Fri Jan 18 08:00:00 CST 2019
    }

第二次:Post方式傳參-失敗

/**
     * http://localhost:8080/intoParam
     * 請求體
     * {
     *     "date":"2019-01-18 11:11:11"
     * }
     */
    @RequestMapping(value = "/intoParam",method = RequestMethod.POST)
    @ResponseBody
    public void intoParam2(@RequestBody DateVo dateVo){
        System.out.println(dateVo.getDate());//Fri Jan 18 08:00:00 CST 2019
    }

@Data
@AllArgsConstructor
@NoArgsConstructor
public class DateVo {

    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date date;
}

錯誤信息:

{
    "timestamp": "2021-10-19T07:05:22.407+0000",
    "status": 400,
    "error": "Bad Request",
    "message": "JSON parse error: Cannot deserialize value of type `java.util.Date` from String \"2019-01-18 11:11:11\": not a valid representation (error: Failed to parse Date value '2019-01-18 11:11:11': Cannot parse date \"2019-01-18 11:11:11\": while it seems to fit format 'yyyy-MM-dd'T'HH:mm:ss.SSSZ', parsing fails (leniency? null)); nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.util.Date` from String \"2019-01-18 11:11:11\": not a valid representation (error: Failed to parse Date value '2019-01-18 11:11:11': Cannot parse date \"2019-01-18 11:11:11\": while it seems to fit format 'yyyy-MM-dd'T'HH:mm:ss.SSSZ', parsing fails (leniency? null))\n at [Source: (PushbackInputStream); line: 2, column: 12] (through reference chain: com.mye.hl20springbootdataparam.vo.DateVo[\"date\"])",
    "path": "/intoParam"
}

第三次:post傳參-成功

/**
     * http://localhost:8080/intoParam
     * 請求體是:
     * {
     *     "date":"2019-01-18"
     * }
     */
    @RequestMapping(value = "/intoParam",method = RequestMethod.POST)
    @ResponseBody
    public void intoParam2(@RequestBody DateVo dateVo){
        System.out.println(dateVo.getDate());//Fri Jan 18 08:00:00 CST 2019
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String format = sdf.format(dateVo.getDate());
        System.out.println(format);//2019-01-18
    }

@Data
@AllArgsConstructor
@NoArgsConstructor
public class DateVo {

    @DateTimeFormat(pattern="yyyy-MM-dd")
    private Date date;
}

原因:

springboot默認(rèn)采用jackson,而jackson只能識別以下幾種日期格式

"yyyy-MM-dd'T'HH:mm:ss.SSSZ";
 
"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";
 
"yyyy-MM-dd";
 
"EEE, dd MMM yyyy HH:mm:ss zzz";
 
long類型的時間戳(毫秒時間戳)

解決方法:

  • 采用long時間戳,如:1537191968000
  • 在傳參的對象上加上@JsonFormat注解并且指定時區(qū)
@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")

第四次:post傳參-成功

/**
     * http://localhost:8080/intoParam
     * 請求體是:
     * {
     *     "date":"2019-01-18 11:11:11"
     * }
     */
    @RequestMapping(value = "/intoParam",method = RequestMethod.POST)
    @ResponseBody
    public void intoParam2(@RequestBody DateVo dateVo){
        System.out.println(dateVo.getDate());//Fri Jan 18 11:11:11 CST 2019
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String format = sdf.format(dateVo.getDate());
        System.out.println(format);//2019-01-18 11:11:11
    }

@Data
@AllArgsConstructor
@NoArgsConstructor
public class DateVo {

    @DateTimeFormat(pattern="yyyy-MM-dd")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date date;
}

@jsonFormat

@JsonFormat(pattern=“yyyy-MM-dd”,timezone = “GMT+8”)
  • pattern:是你需要轉(zhuǎn)換的時間日期的格式
  • timezone:是時間設(shè)置為東八區(qū),避免時間在轉(zhuǎn)換中有誤差
  • @JsonFormat注解可以在屬性的上方,同樣可以在屬性對應(yīng)的get方法上,兩種方式?jīng)]有區(qū)別
/**
     *http://localhost:8080/outParam
     */
    @RequestMapping(value = "/outParam",method = RequestMethod.GET)
    @ResponseBody
    public DateVo intoParam2(){
       return new DateVo(new Date());
    }

@Data
@AllArgsConstructor
@NoArgsConstructor
public class DateVo {

//    @DateTimeFormat(pattern="yyyy-MM-dd")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date date;
}

展示結(jié)果:

{
	"date": "2021-10-19 15:44:51"
}

總結(jié)

前端Content-Type 為application/json的請求時,我們使用@JsonFormat來進(jìn)行轉(zhuǎn)化,如果為表單,則應(yīng)該使用@DateTimeFormat

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot項目離線環(huán)境手動構(gòu)建的過程

    SpringBoot項目離線環(huán)境手動構(gòu)建的過程

    文章介紹了如何在IntelliJ IDEA中手動創(chuàng)建一個Spring Boot項目,并詳細(xì)講解了pom.xml文件的配置和基本項目結(jié)構(gòu)的設(shè)置,感興趣的朋友跟隨小編一起看看吧
    2025-01-01
  • SpringBoot公共頁面抽取方法實現(xiàn)過程介紹

    SpringBoot公共頁面抽取方法實現(xiàn)過程介紹

    這篇文章主要介紹了SpringBoot抽取公共頁面的方法實現(xiàn)過程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-10-10
  • Java實現(xiàn)統(tǒng)計在線人數(shù)功能的方法詳解

    Java實現(xiàn)統(tǒng)計在線人數(shù)功能的方法詳解

    很多人在筆試或者面試中問到:現(xiàn)在要你實現(xiàn)一個統(tǒng)計在線人數(shù)的功能,你該怎么設(shè)計?不知道的朋友,這篇文章就來告訴你具體實現(xiàn)方法
    2022-08-08
  • java中方法遞歸的簡單示例

    java中方法遞歸的簡單示例

    這篇文章主要給大家介紹了關(guān)于java中方法遞歸的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 詳解Java線程堆棧

    詳解Java線程堆棧

    本篇文章主要給大家講了Java線程堆棧的詳細(xì)原理以及用法,需要的朋友跟著學(xué)習(xí)下吧。
    2017-12-12
  • Java基礎(chǔ)之匿名內(nèi)部類、包裝類

    Java基礎(chǔ)之匿名內(nèi)部類、包裝類

    這篇文章主要給大家介紹了關(guān)于Java中方法使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-08-08
  • Springboot使用influxDB時序數(shù)據(jù)庫的實現(xiàn)

    Springboot使用influxDB時序數(shù)據(jù)庫的實現(xiàn)

    項目中需要存放大量設(shè)備日志,且需要對其進(jìn)行簡單的數(shù)據(jù)分析,信息提取工作,所以本文就介紹一下Springboot使用influxDB時序數(shù)據(jù)庫,感興趣的可以了解一下
    2021-08-08
  • Java 解析Markdown文檔格式的兩種方式

    Java 解析Markdown文檔格式的兩種方式

    CommonMark和Flexmark是兩種用于解析Markdown文檔的Java庫,CommonMark提供了一種簡潔和一致的Markdown格式語法規(guī)范,但不支持目錄解析,而Flexmark是一個基于CommonMark的擴(kuò)展庫,不僅遵循了CommonMark規(guī)范,還提供了更多靈活的API和擴(kuò)展功能
    2024-10-10
  • ??Spring Boot SPI 用法教程?

    ??Spring Boot SPI 用法教程?

    文章介紹了Java SPI(服務(wù)提供者接口)和Spring Boot中的SPI機(jī)制,包括它們的定義、使用方式和實戰(zhàn)示例,文章還討論了常見問題和最佳實踐,如版本兼容性、條件裝配、避免類路徑?jīng)_突以及擴(kuò)展點選擇,感興趣的朋友一起看看吧
    2025-11-11
  • 詳解Java編程中final,finalize,finally的區(qū)別

    詳解Java編程中final,finalize,finally的區(qū)別

    這篇文章主要介紹了詳解Java編程中final,finalize,finally的區(qū)別,這個在Java面試題中簡直是太常見了...需要的朋友可以參考下
    2015-11-11

最新評論

冕宁县| 衡东县| 万盛区| 东台市| 开封市| 元江| 饶河县| 忻城县| 新和县| 攀枝花市| 绥江县| 叶城县| 扶绥县| 内乡县| 图们市| 黑龙江省| 屏东市| 长治县| 富宁县| 建水县| 凤台县| 凉城县| 甘肃省| 化州市| 光山县| 横峰县| 定边县| 渑池县| 右玉县| 重庆市| 冀州市| 井陉县| 彭泽县| 海盐县| 麦盖提县| 密云县| 上林县| 怀远县| 湾仔区| 永春县| 古浪县|