时间回显+选择(年月日时分秒

一、获取某个时间

1、Date获取Date类型

<el-form-item label="时间" name="endTime"><el-date-picker type="datetime" v-model="editForm.endTime"></el-date-picker>
</el-form-item>

效果如图:

报错(后端是 Date 类型(java.util.Date)):

org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.util.Date` from String "2023-11-30T16:00:00.000Z": not a valid representation (error: Failed to parse Date value '2023-11-30T16:00:00.000Z': Unparseable date: "2023-11-30T16:00:00.000Z"); nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.util.Date` from String "2023-11-30T16:00:00.000Z": not a valid representation (error: Failed to parse Date value '2023-11-30T16:00:00.000Z': Unparseable date: "2023-11-30T16:00:00.000Z")

解决方法:

在接收时间参数(即endTime)的参数上增加中注解:

@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", timezone = "UTC")

这个注解告诉 Jackson 库如何解析和格式化日期字段。在这个例子中,它告诉 Jackson 使用指定的格式 "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'" 和时区 "UTC" 来处理日期。

完整代码如下:

import com.fasterxml.jackson.annotation.JsonFormat;@Setter
@Getter
public class EditParam {@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", timezone = "UTC")private Date endTime;
}

2、Date获取String类型

<el-form-item label="时间" name="endTime"><el-date-picker type="datetime" value-format="YYYY:MM:DD HH:mm:ss" v-model="editForm.endTime"></el-date-picker>
</el-form-item>

与第一条的区别是加上了:value-format="YYYY:MM:DD HH:mm:ss"

效果同上,报另一个错误(后端是 Date 类型(java.util.Date)):

org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.util.Date` from String "2023:12:02 00:00:00": not a valid representation (error: Failed to parse Date value '2023:12:02 00:00:00': Unparseable date: "2023:12:02 00:00:00"); nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.util.Date` from String "2023:12:02 00:00:00": not a valid representation (error: Failed to parse Date value '2023:12:02 00:00:00': Unparseable date: "2023:12:02 00:00:00")

解决方法:

在接收时间参数(即endTime)的参数上增加中注解:

@JsonFormat(pattern = "yyyy:MM:dd HH:mm:ss", timezone = "UTC")

这个注解告诉 Jackson 按照指定的模式解析和序列化日期字段。

完整代码如下:

import com.fasterxml.jackson.annotation.JsonFormat;@Setter
@Getter
public class EditParam {@JsonFormat(pattern = "yyyy:MM:dd HH:mm:ss", timezone = "UTC")private Date endTime;
}

注意,默认是Date类型,不是字符串类型(如上显示),如果需要回显数据库中的则会是字符串形式,需要 value-format,如果不需要则可以默认,因为如果数据库中回显不做任何操作保存数据类型将是字符串,但是默认Date,所以需要用第二种方式。

BUG

Vue前端的时间是 2023-12-18 12:59:51,但是后端通过@JsonFormat(pattern = "YYYY-MM-dd HH:mm:ss", timezone = "UTC")获取到的时间却是Sun Jan 01 20:59:51 CST 2023

解决:可能涉及到时区处理,将 

@JsonFormat(pattern = "YYYY-MM-dd HH:mm:ss", timezone = "UTC")

改为:

@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")

不能是如下,因为会有年月日错误:

@JsonFormat(pattern = "YYYY-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")

二、获取时间范围

1、String类型获取String类型

        <el-date-pickerv-model="searchFormState.createTime"value-format="YYYY-MM-DD HH:mm:ss"type="daterange"range-separator="至"start-placeholder="开始时间"end-placeholder="结束时间"/></el-form-item>

效果如下图:

      const searchFormParam = JSON.parse(JSON.stringify(this.searchFormState))// createTime范围查询条件重载if (searchFormParam.createTime) {searchFormParam.startTime = searchFormParam.createTime[0]searchFormParam.endTime = searchFormParam.createTime[1]delete searchFormParam.createTime}// 后端获取对象实体类xxxApi.page(Object.assign(searchFormParam)).then((data) => {}
    private String startTime;private String endTime;
mybatisplus的使用查询范围直接:wrapper.between("CREATE_TIME", param.getStartTime(), param.getEndTime());即可

或者使用 a-range-picker、a-range-picker:

<a-range-picker v-model:value="searchFormState.createTime" value-format="YYYY-MM-DD HH:mm:ss" show-time />
<a-range-picker v-model:value="searchFormState.createTime" show-time /><a-date-picker v-model:value="formData.birthday" value-format="YYYY-MM-DD" style="width: 100%" />

效果图如下:

2、Date类型获取String类型

    <el-date-pickerv-model="searchFormState.createTime"type="daterange"range-separator="至"start-placeholder="开始时间"end-placeholder="结束时间" /></el-form-item>
// createTime范围查询条件重载
if (this.searchFormState.createTime) {this.searchFormState.startTime = this.searchFormState.createTime[0]this.searchFormState.endTime = this.searchFormState.createTime[1]
}
xxxApi.getUsers(this.searchFormState).then((data) => {}
import com.fasterxml.jackson.annotation.JsonFormat;@ApiModelProperty("开始时间")@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", timezone = "UTC")private Date startTime;@ApiModelProperty("结束时间")@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", timezone = "UTC")private Date endTime;

el-date-picker 的范围 type="daterange" 选择如下图,没有时分秒选择,默认00:00:00

el-date-picker 的时间 type="datetime" 选择如下图,可选择年月日时分秒:

a-range-picker 的范围选择如下图,可选择年月日时分秒:

a-date-picker 的时间选择如下图,不可选择年月日时分秒:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/456643.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设计模式_责任链模式_Chain

案例引入 学校OA系统的采购审批项目: 需求是 采购员采购教学器材如果金额 小于等于5000&#xff08;0<x<5000&#xff09;&#xff0c;由教学主任审批如果金额 小于等于10000&#xff08;5000<x<10000&#xff09;&#xff0c;由院长审批如果金额 小于等于30000&…

基于Springboot的考编论坛网站的设计与实现(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的考编论坛网站的设计与实现&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层…

二、SSM 整合配置实战

本章概要 依赖整合和添加控制层配置编写(SpringMVC 整合)业务配置编写(AOP/TX 整合)持久层配置编写(MyBatis 整合)容器初始化配置类整合测试 2.1 依赖整合和添加 数据库准备 数据库脚本 CREATE DATABASE mybatis-example;USE mybatis-example;CREATE TABLE t_emp(emp_id INT…

投稿文件准备复盘

8月底 1、实验做完&#xff0c;数据产出后&#xff0c;开始分析数据&#xff0c;讨论&#xff0c;分析&#xff0c;讨论&#xff0c;补充实验 12月底 开始着手于投稿论文 2.1、上传数据到GEO&#xff0c;要到GEO号&#xff08;1周左右如果不打回的话&#xff09; 2.2、首先…

代码随想录算法训练营第二七天 | 回溯 组合 分割

目录 组合总和组合总和II分割回文串 LeetCode 39. 组合总和 LeetCode 40.组合总和II LeetCode 131.分割回文串 组合总和 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 &am…

寒假作业5

TCP 1&#xff1a;提供面向连接的&#xff0c;可靠的数据传输服务 2&#xff1a;传输过程中&#xff0c;数据无误、数据无丢失、数据无失序、数据无重复 3&#xff1a;数据传输效率低&#xff0c;耗费资源多 4&#xff1a;数据收发是不同步的 5&#xff1a;TCP的使用场景&#…

SpringBoot:多环境配置

多环境配置demo代码&#xff1a;点击查看LearnSpringBoot02 点击查看更多的SpringBoot教程 方式一、多个properties文件配置 注意&#xff1a;创建properties文件,命名规则&#xff1a;application-&#xff08;环境名称&#xff09; 示例&#xff1a;application-dev.proper…

WINDOWS搭建NFS服务器

下载并安装 Networking Software for Windows 启动配置 找到安装目录&#xff08;如C:\Program Files\nfsd&#xff09;&#xff0c;双击nfsctl.exe&#xff0c;菜单Edit->Preferences 启动后&#xff1a; 配置Export Exports->Edit exports file 其他的几句我都删除…

Linux-3 进程概念(三)

1.环境变量 1.1基本概念 环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数 如&#xff1a;我们在编写C/C代码的时候&#xff0c;在链接的时候&#xff0c;从来不知道我们的所链接的动态静态库在哪里&#xff0c;但是照样可以链接成功…

2 月 5 日算法练习- 字符串

人物相关性分析 思路&#xff1a;枚举前缀和。枚举字符串中的 Bob 位置利用前缀和来记录&#xff0c;然后枚举 Alice 的位置&#xff0c;通过判断 Bob 在 Alice 前面还是后面来进行不同的前缀和差值计算距离 k 距离中 Bob 的个数求和就是答案&#xff0c;复杂度是 On。注意 Bob…

探索C语言结构体:编程中的利器与艺术

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;C语言学习 贝蒂的主页&#xff1a;Betty‘s blog 1. 常量与变量 1. 什么是结构体 在C语言中本身就自带了一些数据类型&#x…

大数据学习之Redis,十大数据类型的具体应用(五)

目录 3.9 Redis地理空间&#xff08;GEO&#xff09; 简介 原理 Redis在3.2版本以后增加了地理位置的处理哦 命令 命令实操 如何获得某个地址的经纬度 3.9 Redis地理空间&#xff08;GEO&#xff09; 简介 移动互联网时代LBS应用越来越多&#xff0c;交友软件中附近的…