java error(2)保存时间带时分秒,回显时分秒变成00:00:00
超简单,顺带记录一下
1.入参实体类上使用注释:@JsonFormat(pattern = “yyyy-MM-dd”) 导致舍弃了 时分秒的部分。
2.数据库字段对应的类型是 date。date就是日期,日期就不带时分秒。
3.返参实体类使用了@JsonFormat(pattern = “yyyy-MM-dd”) 导致舍弃了时分秒部分。
扩展
关于注解@JsonFormat
General-purpose annotation used for configuring details of how values of properties are to be serialized. Unlike most other Jackson annotations, annotation does not have specific universal interpretation: instead, effect depends on datatype of property being annotated (or more specifically, deserializer and serializer being used). <p> Common uses include choosing between alternate representations -- for example, whether {@link java.util.Date} is to be serialized as number (Java timestamp) or String (such as ISO-8601 compatible time value) -- as well as configuring exact details with {@link pattern} property. <p> As of Jackson 2.6, known special handling includes: <ul> <li>{@link java.util.Date}: Shape can be {@link ShapeSTRING} or {@link ShapeNUMBER}; pattern may contain {@link java.text.SimpleDateFormat}-compatible pattern definition. <li> <li>Can be used on Classes (types) as well, for modified default behavior, possibly overridden by per-property annotation <li> <li>{@link java.lang.Enum}s: Shapes {@link ShapeSTRING} and {@link ShapeNUMBER} can be used to change between numeric (index) and textual (name or <code>toString()<code>); but it is also possible to use {@link ShapeOBJECT} to serialize (but not deserialize) {@link java.lang.Enum}s as JSON Objects (as if they were POJOs). NOTE: serialization as JSON Object only works with class annotation; will not work as per-property annotation. <li> <li>{@link java.util.Collection}s can be serialized as (and deserialized from) JSON Objects, if {@link ShapeOBJECT} is used. NOTE: can ONLY be used as class annotation; will not work as per-property annotation. <li> <li>{@link java.lang.Number} subclasses can be serialized as full objects if {@link ShapeOBJECT} is used. Otherwise the default behavior of serializing to a scalar number value will be preferred. NOTE: can ONLY be used as class annotation; will not work as per-property annotation. <li> <ul>机器翻译:通用注释,用于配置如何序列化属性值的详细信息。与大多数其他 Jackson 注释不同,注释没有特定的通用解释:相反,效果取决于被注释的属性的数据类型(或者更具体地说,使用的反序列化器和序列化器)。<p> 常见用途包括在替代表示形式之间进行选择——例如,{@link java.util.Date} 是序列化为数字(Java 时间戳)还是字符串(例如 ISO-8601 兼容的时间值)——以及使用 {@link pattern} 属性配置确切的详细信息。<p> 从 Jackson 2.6 开始,已知的特殊处理包括: <ul> <li>{@link java.util.Date}:形状可以是 {@link ShapeSTRING} 或 {@link ShapeNUMBER};pattern 可能包含 {@link java.text.SimpleDateFormat} 兼容的模式定义。<li> <li>也可以用于类(类型),用于修改默认行为,可能被每个属性的注释 <li> <li>{@link java.lang.Enum} 覆盖:形状 {@link ShapeSTRING} 和 {@link ShapeNUMBER} 可用于在数字(索引)和文本(name 或 <code>toString())之间切换<code>;但也可以使用 {@link ShapeOBJECT} 将 {@link java.lang.Enum} 序列化(但不能反序列化)为 JSON 对象(就像它们是 POJO 一样)。注意:序列化为 JSON Object 仅适用于类注释;将不用作每个属性的注释。<li> <li>如果使用 {@link ShapeOBJECT},则 {@link java.util.Collection} 可以序列化为 JSON 对象(并从中反序列化)。注意:只能用作类注释;将不用作每个属性的注释。<li> <li>如果使用 {@link ShapeOBJECT},则可以将 {@link java.lang.Number} 子类序列化为完整对象。否则,将首选序列化为标量数值的默认行为。注意:只能用作类注释;将不用作每个属性的注释。<li> <ul>
补充几个 @JsonFormat 的使用方式。
//实体类
@Data
@Accessors(chain = true)
public class TestJsonFormat {@JsonFormat(shape = JsonFormat.Shape.NUMBER_INT)private Integer sendDate;@JsonFormat(shape = JsonFormat.Shape.STRING)private String str;@JsonFormat(shape = JsonFormat.Shape.NUMBER)private Date dateNum;@JsonFormat(pattern = "yyyy-MM-dd")private Date getDate;
}
//接口定义@GetMapping("/testJsonFormat")public AjaxResult testJsonFormat(@RequestBody TestJsonFormat format) {format.setDateNum(new Date());return AjaxResult.success(format);}
//接口调用入参:
{"sendDate": 12.3,"str": 333,"receiveDate":"2023-10-21"
}
//打印结果:
TestJsonFormat(sendDate=12, str=333, dateNum=null, receiveDate=Sat Oct 21 00:00:00 CST 2023)
//返回参数:
{"msg": "操作成功","code": 200,"data": {"sendDate": 12,"str": "333","dateNum": 1734569603473,"receiveDate": "2023-10-21"}
}
可以看到:
1、@JsonFormat(shape = JsonFormat.Shape.NUMBER_INT):将接收数据转换成了整形
2、@JsonFormat(shape = JsonFormat.Shape.STRING):将接收数据转换成了字符串类型
3、@JsonFormat(shape = JsonFormat.Shape.NUMBER):将返回的数据转换成了数字类型时间戳
4、@JsonFormat(pattern = "yyyy-MM-dd"):将字符串类型的时间转换成了对象,又以指定格式返回字符串
相关文章:
java error(2)保存时间带时分秒,回显时分秒变成00:00:00
超简单,顺带记录一下 1.入参实体类上使用注释:JsonFormat(pattern “yyyy-MM-dd”) 导致舍弃了 时分秒的部分。 2.数据库字段对应的类型是 date。date就是日期,日期就不带时分秒。 3.返参实体类使用了JsonFormat(pattern “yyyy-MM-dd”) 导…...

计算机毕业设计python+spark+hive动漫推荐系统 漫画推荐系统 漫画分析可视化大屏 漫画爬虫 漫画推荐系统 漫画爬虫 知识图谱 大数据毕设
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...

数字IC后端设计实现篇之TSMC 12nm TCD cell(Dummy TCD Cell)应该怎么加?
TSMC 12nm A72项目我们需要按照foundary的要求提前在floorplan阶段加好TCD Cell。这个cell是用来做工艺校准的。这个dummy TCD Cell也可以等后续Calibre 插dummy自动插。但咱们项目要求提前在floorplan阶段就先预先规划好位置。 TSCM12nm 1P9M的metal stack结构图如下图所示。…...

(8)YOLOv6算法基本原理
一、YOLOv6 模型原理 发布日期:2022年6月 作者:美团技术团队 骨干网络:参考了 RepVGG 的设计,将重参数化能力进行补强,增强了模型结构的重参数化能力。使用了深度可分离卷积和跨阶段连接等技术,旨在提升…...

LNMP+discuz论坛
0.准备 文章目录 0.准备1.nginx2.mysql2.1 mysql82.2 mysql5.7 3.php4.测试php访问mysql5.部署 Discuz6.其他 yum源: # 没有wget,用这个 # curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo[rootlocalhost ~]#…...

在linux系统的docker中安装GitLab
一、安装GitLab: 在安装了docker之后就是下载安装GitLab了,在linux系统中输入命令:docker search gitlab就可以看到很多项目,一般安装第一个,它是英文版的,如果英文不好可以安装twang2218/gitlab-ce-zh。 …...
Python面试常见问题及答案12
问题: 请解释Python中的GIL(全局解释器锁)是什么? ○ 答案: GIL是Python解释器中的一种机制,用于确保任何时候只有一个线程在执行Python字节码。这在多线程场景下可能影响性能优化,但对于单线程…...

从0-1开发一个Vue3前端系统页面-9.博客页面布局
本节主要实现了博客首页界面的基本布局并完善了响应式布局,因为完善了响应式布局故对前面的页面布局有所改动,这里会将改动后的源码同步上传。 1.对页面头部的用户信息进行设计和美化 布局设计参考 :通常初级前端的布局会通过多个div划分区域…...

[手机Linux] 六,ubuntu18.04私有网盘(NextCloud)安装
一,LNMP介绍 LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RHEL/Fedora/Debian/Ubuntu/Raspbian/Deepin/Alibaba/Amazon/Mint/Oracle/Rocky/Alma/Kali/UOS/银河麒麟/openEuler/Anolis OS Linux VPS或独立主机安装LNMP(Nginx/MySQL/PHP)、LNMPA(Nginx/MySQ…...
白话java设计模式
创建模式 单例模式(Singleton Pattern): 就是一次创建多次使用,它的对象不会重复创建,可以全局来共享状态。 工厂模式(Factory Method Pattern): 可以通过接口来进行实例化创建&a…...

助力 Tuanjie OpenHarmony 开发:如何使用工具包 Hilog 和 SDK Kits Package?
随着团结引擎从 1.0.0 迭代至 1.3.0,越来越多的开发者开始使用团结引擎开发 OpenHarmony 应用。 在开发的过程中,我们也收到了大量反馈,尤其是在日志、堆栈和性能数据方面,这些信息对开发和调试过程至关重要。同时,我…...

NSDT 3DConvert:高效实现大模型文件在线预览与转换
NSDT 3DConvert 作为一个 WebGL 展示平台,能够实现多种模型格式免费在线预览,并支持大于1GB的OBJ、STL、GLTF、点云等模型进行在线查看与交互,这在3D模型展示领域是一个相当强大的功能。 平台特点 多格式支持 NSDT 3DConvert兼容多种3D模型…...

电商数据采集电商,行业数据分析,平台数据获取|稳定的API接口数据
电商数据采集可以通过多种方式完成,其中包括人工采集、使用电商平台提供的API接口、以及利用爬虫技术等自动化工具。以下是一些常用的电商数据采集方法: 人工采集:人工采集主要是通过基本的“复制粘贴”的方式在电商平台上进行数据的收集&am…...
VUE+Node.js+mysq实现响应式个人博客|项目初始化+路由配置+基础组件搭建
Day 1 开发文档:项目初始化与基础架构搭建 一、项目初始化 1. 创建项目 首先,我们使用 Vite 创建一个基于 Vue 3 的项目: # 创建项目 npm create vitelatest my-blog -- --template vue # 这条命令会创建一个名为 my-blog 的新项目&#…...

Python如何正确解决reCaptcha验证码(9)
前言 本文是该专栏的第73篇,后面会持续分享python爬虫干货知识,记得关注。 我们在处理某些国内外平台项目的时候,相信很多同学或多或少都见过,如下图所示的reCaptcha验证码。 而本文,笔者将重点来介绍在实战项目中,遇到上述中的“reCaptcha验证码”,如何正确去处理并解…...

web3跨链预言机协议-BandProtocol
项目简介 Band Protocol 项目最初于 2017年成立并建立在 ETH 之上。后于2020年转移到了 Cosmos 网络上,基于 Cosmos SDK 搭建了一条 Band Chain 。这是一条 oracle-specific chain,主要功能是提供跨链预言机服务。Cosmos生态上第一个,也是目…...

JAVA将集合切分成指定份数(简易)
JAVA将集合切分成指定份数 主要方法 /** * 主要方法* param list 切分的集合* param count 切成的份数* return*/ public static List<List> splitList(List list,int count){if(count <0 ){return Lists.newArrayList();}List<List> result Lists.newArrayL…...

深度神经网络(DNN)在时序预测中的应用与缺陷
目录 编辑 一、DNN在时序预测中的应用 二、DNN的缺陷 三、技术挑战与未来趋势 四、结论 随着大数据时代的到来,深度学习技术在时序预测领域扮演着越来越重要的角色。深度神经网络(DNN)因其强大的非线性拟合能力和自动特征提取能力&…...

springboot445新冠物资管理(论文+源码)_kaic
摘 要 使用旧方法对新冠物资管理的信息进行系统化管理已经不再让人们信赖了,把现在的网络信息技术运用在新冠物资管理的管理上面可以解决许多信息管理上面的难题,比如处理数据时间很长,数据存在错误不能及时纠正等问题。这次开发的新冠物资管…...

C++算法第十一天
本篇文章我们继续学习动态规划 目录 第一题 题目链接 题目解析 代码原理 代码编写 第二题 题目链接 题目解析 代码原理 代码编写 第三题 题目链接 题目解析 代码原理 代码编写 第四题 题目链接 题目解析 代码原理 代码编写 第五题 题目链接 题目解析 代…...

UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...

算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...

基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...
省略号和可变参数模板
本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...
tomcat入门
1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...
从面试角度回答Android中ContentProvider启动原理
Android中ContentProvider原理的面试角度解析,分为已启动和未启动两种场景: 一、ContentProvider已启动的情况 1. 核心流程 触发条件:当其他组件(如Activity、Service)通过ContentR…...
前端中slice和splic的区别
1. slice slice 用于从数组中提取一部分元素,返回一个新的数组。 特点: 不修改原数组:slice 不会改变原数组,而是返回一个新的数组。提取数组的部分:slice 会根据指定的开始索引和结束索引提取数组的一部分。不包含…...
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么?它的作用是什么? Spring框架的核心容器是IoC(控制反转)容器。它的主要作用是管理对…...