欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java日期接收?qǐng)?bào)錯(cuò):could?not?be?parsed,?unparsed?text?found?at?index?10解決辦法

 更新時(shí)間:2024年01月28日 15:27:11   作者:一碗情深  
在做Java開(kāi)發(fā)時(shí)肯定會(huì)碰到傳遞時(shí)間參數(shù)的情況,這篇文章主要給大家介紹了關(guān)于Java日期接收?qǐng)?bào)錯(cuò):could?not?be?parsed,?unparsed?text?found?at?index?10的解決辦法,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下

問(wèn)題背景

使用 Element-UI 的 el-date-picker 組件 將日期轉(zhuǎn)給Java,Java報(bào)錯(cuò)

java.time.format.DateTimeParseException: Text ‘2024-01-03T16:00:00.000Z’ could not be parsed, unparsed text found at index 10

代碼

Vue

<el-date-picker
  v-model="form.removalDate"
  type="date"
  placeholder="選擇日期"
  style="width: 300px"
/>

Java實(shí)體類

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class AppProjects implements Serializable {
    
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date removalDate;
    
}

Java控制層

import com.alibaba.fastjson.JSONObject;

public Object update(@RequestBody JSONObject object) {
    AppProjects appProjects = object.toJavaObject(AppProjects.class);
    boolean update = appProjectsService.updateById(appProjects);
    return update;
}

當(dāng)執(zhí)行 toJavaObject 方法時(shí),報(bào)錯(cuò)如下

java.time.format.DateTimeParseException: Text ‘2024-01-03T16:00:00.000Z’ could not be parsed, unparsed text found at index 10

修改Java控制層

更改為使用實(shí)體類接收參數(shù) @RequestBody AppProjects appProjects

public Object update(@RequestBody AppProjects appProjects) {
    boolean update = appProjectsService.updateById(appProjects);
    return update;
}

執(zhí)行方法時(shí)不報(bào)錯(cuò),但是日期的值卻比實(shí)際少一天,為什么呢?

因?yàn)榍岸藢?shí)際選擇日期為 ‘2024-01-04’ ,傳值為 ‘2024-01-03T16:00:00.000Z’,該時(shí)區(qū)不是東八區(qū),使用實(shí)體類接收時(shí)去掉了時(shí)分秒,導(dǎo)致日期保存為 ‘2024-01-03’

已經(jīng)不報(bào)錯(cuò)了,那么解決日期問(wèn)題就簡(jiǎn)單了!

解決方法

在 el-date-picker組件 使用屬性 value-format="yyyy-MM-dd" 將綁定的格式不指定為 Date 對(duì)象,綁定的值會(huì)轉(zhuǎn)為 string 對(duì)象,那么實(shí)際選擇哪一天的日期,就是 yyyy-MM-dd 格式的字符串啦!這樣后端就能正確接收日期了

<el-date-picker
  v-model="form.removalDate"
  type="date"
  value-format="yyyy-MM-dd"
  placeholder="選擇日期"
  style="width: 300px"
/>

補(bǔ)充:java后端接收前端傳遞的日期參數(shù)為空字符串時(shí)報(bào)錯(cuò)

一、關(guān)于接收前端傳遞的日期參數(shù)的問(wèn)題:

前提:

Date類型的屬性上添加了以下注解:

@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JSONField(format = "yyyy-MM-dd")

1、java.sql.date:空字符串解析報(bào)錯(cuò),正常日期格式字符串沒(méi)問(wèn)題;

2、java.util.date:空字符串解析沒(méi)問(wèn)題,正常日期格式字符串用于查詢時(shí)報(bào)錯(cuò);

二、方案:

1、Controller層添加以下方法,自定義解析參數(shù)(只在該Controller層生效)

@InitBinder
    public void initBinder(WebDataBinder binder){
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        // spring提供的日期解析器(格式化,是否允許為空)選擇true則將空字符串解析為null
        CustomDateEditor customDateEditor = new CustomDateEditor(simpleDateFormat, true);
        // 為Date類型的屬性注冊(cè)解析器
        binder.registerCustomEditor(Date.class, customDateEditor);
    }

2、java.util.date用于查詢時(shí)格式化為yyyy-MM-dd

3、前端傳遞正確的日期/不傳遞該參數(shù)

總結(jié)

到此這篇關(guān)于Java日期接收?qǐng)?bào)錯(cuò):could not be parsed, unparsed text found at index 10解決辦法的文章就介紹到這了,更多相關(guān)Java日期接收?qǐng)?bào)錯(cuò)could not be parsed內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mybatis常用分頁(yè)插件實(shí)現(xiàn)快速分頁(yè)處理技巧

    Mybatis常用分頁(yè)插件實(shí)現(xiàn)快速分頁(yè)處理技巧

    這篇文章主要介紹了Mybatis常用分頁(yè)插件實(shí)現(xiàn)快速分頁(yè)處理的方法。非常不錯(cuò)具有參考借鑒價(jià)值,感興趣的朋友一起看看
    2016-10-10
  • Java FTPClient連接池的實(shí)現(xiàn)

    Java FTPClient連接池的實(shí)現(xiàn)

    這篇文章主要介紹了Java FTPClient連接池的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • Spring Bean三級(jí)緩存機(jī)制的技術(shù)指南

    Spring Bean三級(jí)緩存機(jī)制的技術(shù)指南

    在 Spring 框架中,Bean 的創(chuàng)建和管理是容器的核心功能之一,了提高性能,Spring 采用了多級(jí)緩存機(jī)制來(lái)減少不必要的對(duì)象創(chuàng)建和配置,本文將詳細(xì)介紹 Spring 中 Bean 三級(jí)緩存的實(shí)現(xiàn)原理,并通過(guò)代碼示例幫助你理解這個(gè)機(jī)制的工作方式,需要的朋友可以參考下
    2025-04-04
  • springboot config 攔截器使用方法實(shí)例詳解

    springboot config 攔截器使用方法實(shí)例詳解

    本文介紹Spring-Boot中使用攔截器的相關(guān)知識(shí),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2018-05-05
  • Java線程之間的共享與協(xié)作詳解

    Java線程之間的共享與協(xié)作詳解

    這篇文章主要介紹了Java線程之間的共享與協(xié)作詳解,進(jìn)程是操作系統(tǒng)進(jìn)行資源分配的最小單位,線程是進(jìn)程的一個(gè)實(shí)體,是CPU調(diào)度和分派的基本單位,它是比經(jīng)常更小的、能夠獨(dú)立運(yùn)行的基本單位
    2022-07-07
  • SpringBoot 普通類調(diào)用Bean對(duì)象的一種方式推薦

    SpringBoot 普通類調(diào)用Bean對(duì)象的一種方式推薦

    這篇文章主要介紹了SpringBoot 普通類調(diào)用Bean對(duì)象的一種方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • 詳解springboot項(xiàng)目啟動(dòng)時(shí)如何排除用不到的bean

    詳解springboot項(xiàng)目啟動(dòng)時(shí)如何排除用不到的bean

    使用springboot開(kāi)發(fā)項(xiàng)目,我們有時(shí)候會(huì)排除一些項(xiàng)目里面用不到的bean,不然的話項(xiàng)目啟動(dòng)會(huì)報(bào)錯(cuò),這種情況通常是發(fā)生在什么場(chǎng)景里呢,以及如何解決呢,今天咱們就聊一聊
    2024-01-01
  • java實(shí)現(xiàn)按層遍歷二叉樹(shù)

    java實(shí)現(xiàn)按層遍歷二叉樹(shù)

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)按層遍歷二叉樹(shù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • JAVA函數(shù)的定義、使用方法實(shí)例分析

    JAVA函數(shù)的定義、使用方法實(shí)例分析

    這篇文章主要介紹了JAVA函數(shù)的定義、使用方法,結(jié)合實(shí)例形式分析了JAVA函數(shù)的基本概念、功能、原理、定義、使用方法與操作注意事項(xiàng),需要的朋友可以參考下
    2020-04-04
  • Spring?MVC各種參數(shù)進(jìn)行封裝的方法實(shí)例

    Spring?MVC各種參數(shù)進(jìn)行封裝的方法實(shí)例

    這篇文章主要給大家介紹了關(guān)于Spring?MVC各種參數(shù)進(jìn)行封裝的相關(guān)資料,SpringMVC內(nèi)置多種數(shù)據(jù)類型轉(zhuǎn)換器,可以根據(jù)請(qǐng)求中的參數(shù)與后端控制器方法的參數(shù)的關(guān)系為我們實(shí)現(xiàn)簡(jiǎn)單的數(shù)據(jù)封裝,需要的朋友可以參考下
    2023-06-06

最新評(píng)論