@DateTimeFormat 和 @JsonFormat 的详细研究

news/2024/2/28 10:45:34

关于这两个时间转化注解,先说结论

一、介绍

1、@DateTimeFormat

@DateTimeFormat 并不会根据得到其属性 pattern 把前端传入的数据转换成自己想要的格式,而是将前端的String类型数据封装到Date类型;其次它的 pattern 属性是用来规范前端传入数据的格式
@DateTimeFormat 它用于前端日期String数据提交封装到日期Date数据类型中
示例1:前端传递的2023-09-23 17:10:30   后端采用@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")   不会出错
示例2:前端传递的2023-09-23 17:10:30   后端采用@DateTimeFormat(pattern = "yyyy-MM-dd")   出错
示例3:前端传递的2023-09-23   后端采用@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")   不会出错

2、 @JsonFormat

@JsonFormat 会对前端传来的数据进行处理,按照其 pattern 属性定义把传入的数据转化
@JsonFormat 同样会对后端传给前端的数据进行处理,按照其 pattern 属性定义直接进行截取返回给前端
示例1:前端传递的2023-09-23 17:10:30   后端采用@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")   不会出错
示例2:前端传递的2023-09-23 17:10:30   后端采用@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")   不会出错
示例3:前端传递的2023-09-23   后端采用@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")   出错

二、代码演示

创建实体类

@Data
public class Test1 {/*** 创建时间*/@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")private Date createTime;/*** 创建时间*/@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")private Date updateTime;/*** 创建时间*/@DateTimeFormat(pattern = "yyyy-MM-dd")private Date createTime2;/*** 创建时间*/@DateTimeFormat(pattern = "yyyy-MM-dd")private Date updateTime2;/*** 创建时间*/@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")private Date createTime3;/*** 创建时间*/@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")private Date updateTime3;/*** 创建时间*/@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")private Date createTime4;/*** 创建时间*/@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")private Date updateTime4;}

创建controller

@RestController
@RequestMapping("/test")
public class TestController {@PostMapping("/test1")public ResultVo<?> test1(@RequestBody Test1 test1) {System.out.println("test1 = " + test1);return ResultVo.success(test1);}}

三、postman测试

前端传递的时间类型为日期字符串类型(如:2023-09-22),后端采用 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")接收会出错

前端传递的时间类型为时间字符串类型(如:2023-09-23 09:30:30),后端采用@DateTimeFormat(pattern = "yyyy-MM-dd")接收会报错

关于时间返回类型

createTime、createTime2前端传递日期字符串,后端采用@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")接收,controller处理完返回给前端的时间格式为日期Date

createTime3、createTime4前端日期字符串,后端用@JsonFormat 对应的格式接收,按照其 pattern 属性定义直接进行截取返回给前端


http://www.ppmy.cn/news/1129395.html

相关文章

Docker版部署RocketMQ开启ACL验证

一、拉取镜像 docker pull apache/rocketmq:latest 二、准备挂载目录 mkdir /usr/local/rocketmq/data mkdir /usr/local/rocketmq/conf 三、运行 docker run \ -d \ -p 9876:9876 \ -v /usr/local/rocketmq/data/logs:/home/rocketmq/logs \ -v /usr/local/rocketmq/data…

芯科科技第二代平台的所有蓝牙片上系统均可支持蓝牙技术联盟的新功能和新标准

中国&#xff0c;北京 - 2023年9月21日 – 致力于以安全、智能无线连接技术&#xff0c;建立更互联世界的全球领导厂商Silicon Labs&#xff08;亦称“芯科科技”&#xff0c;NASDAQ&#xff1a;SLAB&#xff09;&#xff0c;今日宣布其支持蓝牙技术联盟&#xff08;Bluetooth …

路由器配置单区域(多区域)OSPF

目录 实验原理 案例 路由器配置单区域OSPF基本功能 单区域总结 路由器配置多区域OSPF基本功能 多区域特点 实验原理 OSPF&#xff08;Open Shortest Path First&#xff0c;开放最短路径优先&#xff09;是互联网的标准协议&#xff0c;是为克服RIP的缺点而开发的。目前针…

ChatGPT架构师:语言大模型的多模态能力、幻觉与研究经验

来源 | The Robot Brains Podcast OneFlow编译 翻译&#xff5c;宛子琳、杨婷 9月26日&#xff0c;OpenAI宣布ChatGPT新增了图片识别和语音能力&#xff0c;使得ChatGPT不仅可以进行文字交流&#xff0c;还可以给它展示图片并进行互动&#xff0c;这是一次ChatGPT向多模态进化的…

Python-表白小程序练习

测试代码 在结果导向的今天&#xff0c;切勿眼高于顶&#xff0c;不论用任何方法能转换、拿出实际成果东西才是关键&#xff0c;即使一个制作很简易的程序&#xff0c;你想将其最终生成可运行的版本也是需要下一番功夫的。不要努力成为一个嘴炮成功者,要努力成为一个有价值的人…

FastestDet---ncnn及多线程部署

前两篇文章记录了fastestdet的原理和训练,本篇文章讲解记录ncnn端的部署。 一、环境配置 我的编译环境是opencv3.4,protobuf3.4,ncnn版本无要求,cmake3.17,vs2019, 请参考我之前的博文:yolov4-tiny的ncnn部署进行环境配置搭建及模型的转换: https://blog.csdn.net/qq_4…

【每日一题】2703. 返回传递的参数的长度

2703. 返回传递的参数的长度 - 力扣&#xff08;LeetCode&#xff09; 请你编写一个函数 argumentsLength&#xff0c;返回传递给该函数的参数数量。 示例 1&#xff1a; 输入&#xff1a;args [5] 输出&#xff1a;1 解释&#xff1a; argumentsLength(5); // 1只传递了一个值…

HTML5+CSS3+JS小实例:霜雾玻璃图片预览特效

实例:霜雾玻璃图片预览特效 技术栈:HTML+CSS+JavaScript 效果: 源码: 【html】 <!DOCTYPE html> <html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta name="viewport" …

目标检测:FROD: Robust Object Detection for Free

论文作者&#xff1a;Muhammad,Awais,Weiming,Zhuang,Lingjuan,Lyu,Sung-Ho,Bae 作者单位&#xff1a;Sony AI; Kyung-Hee University 论文链接&#xff1a;http://arxiv.org/abs/2308.01888v1 内容简介&#xff1a; 1&#xff09;方向&#xff1a;目标检测 2&#xff09;…

深度学习修炼(三)卷积操作 | 边界填充、跨步、多输入输出通道、汇聚池化

文章目录 1. 卷积基本操作2 现代卷积进阶武器操作2.1 边界 填充2.2 跨步 步幅2.3 多输入输出通道2.4 汇聚 池化 3. 卷积层设计 之前我们讲了 线性分类器 深度学习修炼&#xff08;一&#xff09;线性分类器 | 权值理解、支撑向量机损失、梯度下降算法通俗理解_Qodi的博客-CSDN博…

万里牛ERPsign生成

签名的生成需要注意两点&#xff1a;1、系统参数要排在前面&#xff0c;并且按照字母表顺序排序&#xff0c;业务参数排在所有系统参数的后面&#xff0c;也要按照字母表排序&#xff1b;2、appsecret在拼接时&#xff0c;直接拼上即可&#xff0c;不需要任何连接符&#xff0c…

【面试高高手】—— Redis

文章目录 1.Redis的数据类型有哪些&#xff1f;2.使用Redis设计一个排行榜&#xff0c;你会如何设计&#xff0c;使用什么数据结构&#xff1f;3.如何确定热点数据&#xff1f;4.Redis的持久化策略有哪些&#xff1f;5.如何使用Redis实现分布式锁&#xff1f;6.Redis的数据淘汰…

BiMPM实战文本匹配【上】

引言 今天来实现BiMPM模型进行文本匹配&#xff0c;数据集采用的是中文文本匹配数据集。内容较长&#xff0c;分为上下两部分。 数据准备 数据准备这里和之前的模型有些区别&#xff0c;主要是因为它同时有字符词表和单词词表。 from collections import defaultdict from …

spring6-IOC容器

IOC容器 1、IoC容器1.1、控制反转&#xff08;IoC&#xff09;1.2、依赖注入1.3、IoC容器在Spring的实现 2、基于XML管理Bean2.1、搭建子模块spring6-ioc-xml2.2、实验一&#xff1a;获取bean①方式一&#xff1a;根据id获取②方式二&#xff1a;根据类型获取③方式三&#xff…

蓝牙技术|蓝牙在物联网产品上的功能,特别是苹果Find My中的应用

蓝牙技术经历了不同的迭代&#xff0c;引入了新功能和改进。最初的蓝牙版本于1999年推出。低功耗蓝牙(BLE)&#xff0c;也称为蓝牙4.0或蓝牙智能&#xff0c;于2010年发明&#xff0c;旨在最大限度地降低功耗。这使得它非常适合使用电池供电的物联网设备&#xff0c;从而延长电…

Leetcode205. 同构字符串

力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 给定两个字符串 s 和 t &#xff0c;判断它们是否是同构的。 如果 s 中的字符可以按某种映射关系替换得到 t &#xff0c;那么这两个字符串是同构的。 每个出现的字符都应当映射到另一个字符&#xff0…

设计模式3、工厂方法模式 Factory Method

解释说明&#xff1a;定义一个用于创建对象的接口&#xff0c;但是让子类决定将哪一个类实例化。工厂方法模式让一个类的实例化延迟到其子类 抽象工厂&#xff08;AbstractFactory&#xff09;&#xff1a;提供了创建产品的接口&#xff0c;调用者通过它访问具体工厂的工厂方法…

蓝牙核心规范(V5.4)11.2-LE Audio 笔记之LE Auido架构

专栏汇总网址&#xff1a;蓝牙篇之蓝牙核心规范学习笔记&#xff08;V5.4&#xff09;汇总_蓝牙核心规范中文版_心跳包的博客-CSDN博客 爬虫网站无德&#xff0c;任何非CSDN看到的这篇文章都是盗版网站&#xff0c;你也看不全。认准原始网址。&#xff01;&#xff01;&#x…

VBA 将TXT的多行文本文件进行处理,以ID为单位处理成 一行

VBA 将TXT的多行文本文件进行处理&#xff0c;以ID为单位处理成 一行 序言 由于需要将TXT文件与Excel文件进行对比&#xff0c;但两种文件格式差异比较大&#xff0c;于是通过VBA写了一下小工具&#xff0c;以便日后方便使用。 TXT文件如下 VBA代码如下 ********************…

Web Worker实现前端的“多线程”

Web Workers 是一种 JavaScript 机制&#xff0c;允许在后台运行独立的线程&#xff0c;以执行一些计算密集型或耗时的任务。这使得在多核 CPU 上并行处理任务成为可能。 直接show code&#xff1a; hello.html代码 <!DOCTYPE html> <html lang"en"> …
最新文章