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

news2024/9/25 21:25:24

一、获取某个时间

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-picker
                v-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-picker
        v-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.coloradmin.cn/o/1429957.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

关于爬取所有哔哩哔哩、任意图片、所有音乐、的python脚本语言-Edge浏览器插件 全是干货!

这些都是现成的并且实时更新的&#xff01;从次解放双手&#xff01; 首先有自己的edge浏览器基本上都有并且找到插件选项 1.哔哩哔哩视频下载助手&#xff08;爬取哔哩哔哩视频&#xff09; bilibili哔哩哔哩视频下载助手 - Microsoft Edge Addons 下面是效果&#xff1a; 2.图…

办公软件巨头CCED、WPS面临新考验,新款办公软件异军突起

办公软件巨头CCED、WPS的成长经历 众所周知&#xff0c;CCED和WPS在中国办公软件领域树立了两大知名品牌的地位。然而&#xff0c;它们的成功并非一朝一夕的成就&#xff0c;而是历经了长时间的发展与积淀。 在上世纪80年代末至90年代初&#xff0c;CCED作为中国大陆早期的一款…

Python爬虫http基本原理

Python爬虫逆向系列&#xff08;更新中&#xff09;&#xff1a;http://t.csdnimg.cn/5gvI3 HTTP 基本原理 在本节中&#xff0c;我们会详细了解 HTTP 的基本原理&#xff0c;了解在浏览器中敲入 URL 到获取网页内容之间发生了什么。了解了这些内容&#xff0c;有助于我们进一…

python爬虫爬取网站

流程&#xff1a; 1.指定url(获取网页的内容) 爬虫会向指定的URL发送HTTP请求&#xff0c;获取网页的HTML代码&#xff0c;然后解析HTML代码&#xff0c;提取出需要的信息&#xff0c;如文本、图片、链接等。爬虫请求URL的过程中&#xff0c;还可以设置请求头、请求参数、请求…

亿某通电子文档安全管理系统 UploadFileToCatalog SQL注入漏洞

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

用免费软件分流抢票Bypass辅助购买火车票的亲测可用方法

本文介绍基于分流抢票&#xff08;Bypass&#xff09;软件&#xff0c;协助购买预售、已开售或候补等各类状态的火车票的方法。 最近几天一直没有顾得上看过年回家的火车票&#xff0c;导致错过了回家车票的开售时间&#xff0c;所以当时就直接去12306的官方网站候补了&#xf…

基于3DGIS 的5G 基站规划

这个基于3DGIS 5G 基站规划的案例很不错&#xff0c;与大家分享一下。感觉是3DGIS中为数不多的实用案例。但还是没有特别多的突出三维的技术优势&#xff0c;因为这里面很多规划思想其实还是基于面的而不是基于体的&#xff01;好了不多说了&#xff0c;给大家分享这个案例&…

java hutool工具类实现将数据下载到excel

通过hutool工具类&#xff0c;对于excel的操作变得非常简单&#xff0c;上篇介绍的是excel的上传&#xff0c;对excel的操作&#xff0c;核心代码只有一行。本篇的excel的下载&#xff0c;核心数据也不超过两行&#xff0c;简洁方便&#xff0c;特别适合当下的低代码操作。 下载…

【Java程序设计】【C00188】基于SSM的宠物猫狗商业管理系统(论文+PPT)

基于SSM的宠物猫狗商业管理系统&#xff08;论文PPT&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于ssm的宠物猫狗商业系统 本系统分为前台系统、后台管理员以及后台用户3个功能模块。 前台系统&#xff1a;当游客打开系统的网址后&#xff0c;…

容器化对数据库的性能有影响吗?

引言 容器化是一种将应用程序及其依赖项打包到一个独立、可移植的运行环境中的技术。容器化技术通过使用容器运行时引擎&#xff08;比如Docker/Containerd&#xff09;来创建、部署和管理容器。Kubernetes&#xff08;通常简称为 k8s&#xff09;是一个开源的容器编排和管理平…

作业2024/2/3

第二章 引用内联重载 一&#xff0e;选择题 1、适宜采用inline定义函数情况是&#xff08;C&#xff09; A. 函数体含有循环语句 B. 函数体含有递归语句 C. 函数代码少、频繁调用 D. 函数代码多、不常调用 2、假定一个函数为A(int i4, int j0) {;}, 则执行“A (1);”语句…

OceanBase 4.2.2 GA 发布,全新特性快速预览!

在 2023 年度发布会上&#xff0c;OceanBase 沿着“一体化”产品战略思路&#xff0c;发布了一体化数据库的首个长期支持版本 4.2.1 LTS。作为 4.0 系列的首个 LTS 版本&#xff0c;该版本的定位是支撑客户关键业务稳定长久运行&#xff0c;我们非常认真的打磨了这个版本&#…

MySQL事务原理-相关日志

文章目录 前言一、什么是事务&#xff1f;1.1 事务概念1.2 事务的四大特性1.3 事务的隔离级别 二、实现原理2.1 TODO2.2 TODO 前言 事务是由MySQL的引擎来实现的&#xff0c;通过show engines命令查看MySQL存储引擎类别&#xff0c;观察只有InnoDB存储引擎支持事务。 一、什么…

Transformer实战-系列教程3:Vision Transformer 源码解读1

&#x1f6a9;&#x1f6a9;&#x1f6a9;Transformer实战-系列教程总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 1、整体解读 在文本任务中大量使用了Transformer 架构&#xff0c;因为文本数据是一个序列非常好…

如何在FBX剔除Lit.shader依赖

1&#xff09;如何在FBX剔除Lit.shader依赖 2&#xff09;Unity出AAB包&#xff08;PlayAssetDelivery&#xff09;模式下加载资源过慢问题 3&#xff09;如何在URP中正确打出Shader变体 4&#xff09;XLua打包Lua文件粒度问题 这是第371篇UWA技术知识分享的推送&#xff0c;精…

浅谈一下SpringBoot吧

什么是SpringBoot&#xff1f; Spring Boot 是由 Pivotal 团队提供的基于 Spring 的全新框架&#xff0c;旨在简化 Spring 应用的初始搭建和开发过程。该框架使用了特定的方式来进行配置&#xff0c;从而使开发人员不再需要定义样板化的配置。 约定大于&#xff08;优于&#…

二叉树可视化

二叉树可视化 运行演示代码和程序已上传二叉树知识平衡二叉树红黑树最优二叉搜索树哈夫曼树KD树B树和B树 参考 运行演示 学习二叉树总是脑补图像&#xff0c;实在是恶心&#xff0c;就想写一个能可视化的二叉树&#xff0c;结果没控制好&#xff0c;功能越想越多&#xff0c;先…

第2集《忏悔法门》

请大家打开讲义第五面&#xff0c; 这一科讲到甲二&#xff0c;正式说明忏悔的方法。「忏悔的方法」有三个主题&#xff0c;第一个是「思惟业果的道理」&#xff0c;这当中有「理论的思惟」&#xff0c;跟「事相的观察」。 理论的思惟是说&#xff1a;今天当我们造了一个业&a…

asp.net core通过读取配置文件来动态生成接口

如果希望接口是每次通过配置文件生成的&#xff0c;这样设计一些低代码的方式来获得接口。 系统目录结构&#xff1a; 启动配置代码&#xff1a; using Microsoft.AspNetCore.Hosting; using System.Configuration; using System.Data.Entity; using Swashbuckle.AspNetCore.…

线性代数:线性方程组

目录 一、线性方程组概念 二、消元法求线性方程组 三、系数阵的秩与线性方程组的解 无解 唯一解 无数解 相关定理 一、线性方程组概念 二、消元法求线性方程组 三、系数阵的秩与线性方程组的解 无解 唯一解 无数解 相关定理