Java中Date类型上的注解

news2024/11/16 3:26:33

在日常开发中,涉及到日期时间类型Date和常用的注解@DateTimeFormat和@JsonFormat

java.util.Date;

org.springframework.format.annotation.DateTimeFormat;

com.fasterxml.jackson.annotation.JsonFormat;

一 Date类型字段不使用注解

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Emp {
    private Date date;
}

@RestController
public class FrontController {
    @PostMapping("/one")
    public Emp testOne(Emp emp) {
        System.out.println("接收到的入参是: " + emp);
        return emp;
    }

    @PostMapping("/two")
    public Emp testTwo(@RequestBody Emp emp) {
        System.out.println("接收到的入参是: " + emp);
        return emp;
    }
}

如果是Params传参,无论参数用什么样的日期时间格式,都会报400错误;

如果是json格式传参,前端传参格式只能是yyyy-MM-dd格式,其他格式都会报400错误;

前端使用json格式,日期时间类型格式是yyyy-MM-dd,前端默认使用世界时间传递,会自动补齐时分秒00时00分00秒,Date数据类型又会将时间转换为当前时区的时间:

        前端请求时间和后端代码处理时间不一致,Java代码处理的日期时间是东八区时间;

        前端请求时间和后端响应时间一致,响应前端的时候又转换时间为世界时IOS格式;

二 使用注解@DateTimeFormat

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Emp {
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date date;
}

如果是Params传参,前端传参格式只能是@DateTimeFormat注解定义的格式,否则报400错误;

如果是json格式传参,前端传参格式只能是yyyy-MM-dd格式,其他格式都会报400错误;

前端使用Params传递参数,日期时间格式和@DateTimeFormat注解定义的格式保持一致:

        前端请求时间和后端代码处理时间一致;

        前端请求时间和后端响应时间不一致;

前端使用json格式传参,前端传参格式只能是yyyy-MM-dd格式,其他格式都会报400错误,作用效果和不使用注解一样:

        前端请求时间和后端代码处理时间不一致,Java代码处理的日期时间是东八区时间;

        前端请求时间和后端响应时间一致,响应前端的时候又转换时间为世界时IOS格式;

小结:@DateTimeFormat注解的日期时间类型,前端主要是在Params中传参(即url传参),在前端向后端传日期时间类型数据的时候进行格式化,注解可以用在Date类型字段上和set方法上,或是方法入参上。

三 使用注解@JsonFormat

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Emp {
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date date;
}

如果是Params传参,无论参数用什么样的日期时间格式,都会报400错误;

如果是json格式传参,前端传参格式只能是@JsonFormat注解定义的格式,其他格式都会报400错误;

前端使用json传递参数,日期时间格式和@JsonFormat注解定义的格式保持一致:

        前端请求时间和后端代码处理时间一致;

        前端请求时间和后端响应时间一致;

小结:@JsonFormat注解的日期时间类型,前端只能使用json格式传参,注解可以用在Date类型字段上和set方法上,或是方法入参上。

四 总结

在后台处理日期时间类型时,既要保证后台接收到的日期时间数据格式正确,又要保证后台响应的日期时间数据格式正确:

@DateTimeFormat注解,可以保证前端Params传参时,后台接收处理的日期时间数据格式正确;

@JsonFormat注解,可以保证前端json传参时,后台接收处理的日期时间数据格式正确;

@JsonFormat注解,还可以保证后台响应的日期时间数据格式正确;

所以在日常开发中,@DateTimeFormat和@JsonFormat这两个注解常配合使用;

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

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

相关文章

C语言程序设计——数组(一)

一、一维数组的定义和引用 数组:是一组具有相同数据类型的数据的有序集合。 1.1一维数组的定义 定义格式为: 类型说明符 数组名[常量表达式]; eg: int a[10]; 表示定义了一个整形数组,数组名为a,此数组有10个元素。 注:①数组名定名规则和变量名相同,遵循标识符…

【C++】STL学习——list模拟实现

目录 list介绍list结构介绍节点类的实现迭代器的实现构造函数运算符重载--运算符重载运算符重载!运算符重载*运算符重载->运算符重载 const迭代器的实现多参数模板迭代器list函数接口总览默认成员函数构造函数1构造函数2构造函数3 析构函数拷贝构造函数赋值重载函数 迭代器b…

八,SpringBoot Web 开发访问静态资源(附+详细源码剖析)

八,SpringBoot Web 开发访问静态资源(附详细源码剖析) 文章目录 八,SpringBoot Web 开发访问静态资源(附详细源码剖析)1. 基本介绍2. 快速入门2.1 准备工作 3. 改变静态资源访问前缀,定义为我们自己想要的4. 改变Spring Boot当中的默认的静态…

Spring框架5 - 容器的扩展功能 (ApplicationContext)

private static ApplicationContext applicationContext;static {applicationContext new ClassPathXmlApplicationContext("bean.xml"); } BeanFactory的功能扩展类ApplicationContext进行深度的分析。ApplicationConext与 BeanFactory的功能相似,都是…

2024下学期学习总结加今日学习总结

Vue router Vue Router 是一个为 Vue.js 应用程序设计的官方路由管理器。它使你能够轻松地在 Vue 应用中实现页面导航,处理 URL 和视图的映射。 安装router 在运行框内输入 npm install vue-router4 //vue2专用 npm install vue-router3 //vue3专用 对router进…

uniapp数据缓存和发起网络请求

数据缓存 uni.onStorageSync同步的方式将数据存储到本地缓存 <template><button click"onStorageSync()">存储数据</button> </template><script setup>const onStorageSync () > {// 存储数据uni.setStorageSync(username, 张三)…

【验收交付体系文档】系统验收计划书,软件交付验收成套文档体系

软件系统验收计划书是确保新开发的软件系统符合预期要求并稳定运行的关键步骤。本计划书概述了验收过程的主要环节&#xff0c;包括系统功能的详细测试、性能评估、用户接受度测试以及文档完整性的核查。验收团队将依据项目需求规格说明书和合同要求&#xff0c;对系统进行全面…

axure判断

在auxre中我们也可以实现判断的功能&#xff0c;当目标等于什么内容时则执行下方的功能。 一、判断输入框中是否有值 画布添加一个输入框、一个文本标签删除其中内容&#xff0c;添加一个按钮&#xff0c;输入框命名为【文本显示】文本标签命名为【提示】 给按钮新增一个交互…

多个索引干扰导致索引失效如何解决

视频讲解&#xff1a;索引干扰导致索引失效如何解决_哔哩哔哩_bilibili 1 场景说明 表tb_order有订单状态order_status和创建时间create_time的索引。 现在业务的需求是&#xff0c;查询半年内&#xff0c;已支付订单状态的总数。SQL语句如下&#xff1a; SELECTCOUNT(1) FRO…

韦季李输入法_输入法和鼠标的深度融合

在数字化输入的新纪元&#xff0c;传统键盘输入方式正悄然进化。以往&#xff0c;面对实体键盘&#xff0c;我们常需目光游离于屏幕与键盘之间&#xff0c;以确认指尖下的精准位置。而屏幕键盘虽直观可见&#xff0c;却常因占据屏幕空间&#xff0c;迫使我们在操作与视野间做出…

Windows系统下安装JMeter

目录 一、官网下载JMeter 二、运行 JMeter 一、官网下载JMeter JMeter 官网安装地址 Apache JMeter - Apache JMeter™https://jmeter.apache.org/ 下载Windows版本 下载完成后 解压 二、运行 JMeter 打开bin目录 下面两个文件其中一个均可运行双击jmeter.bat 或者使用…

支持黑神话悟空的超长视频理解,Qwen2-VL多模态大模型分享

Qwen2-VL是由阿里巴巴达摩院开发并开源的第二代视觉与语言多模态人工智能模型。 Qwen2-VL结合了视觉理解和自然语言处理的能力&#xff0c;使得它能够处理和理解图像、视频以及文本数据。 Qwen2-VL支持多种语言&#xff0c;包括但不限于英语、中文、大多数欧洲语言、日语、韩…

【分支-快速排序】

【分支-快速排序】 1. 颜色分类1.1 题目来源1.2 题目描述1.3 题目解析 2. 排序数组2.1 题目来源2.2 题目描述2.3 题目解析 3. 数组中的第K个最大元素3.1 题目来源3.2 题目描述3.3 题目解析 4. 库存管理 III4.1 题目来源4.2 题目描述4 .3 题目解析 1. 颜色分类 1.1 题目来源 7…

JS基础学习笔记

1.引入方式 内部脚本 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> <…

为什么要使用大模型RAG一体机

使用大模型RAG&#xff08;Retrieval-Augmented Generation&#xff09;一体机&#xff0c;如AntSKPro AI 离线知识库一体机&#xff0c;有以下几个原因和优势&#xff1a; 提高效率&#xff1a;RAG模型结合了检索&#xff08;Retrieval&#xff09;和生成&#xff08;Generati…

鸿蒙(API 12 Beta6版)GPU加速引擎服务【自适应VRS】

XEngine Kit提供自适应VRS功能&#xff0c;其通过合理分配画面的计算资源&#xff0c;视觉无损降低渲染频次&#xff0c;使不同的渲染图像使用不同的渲染速率&#xff0c;能够有效提高渲染性能。 接口说明 以下接口为自适应VRS设置接口&#xff0c;如要使用更丰富的设置和查询…

windows10-VMware17-Ubuntu-22.04-海康2K摄像头兼容问题,求解(已解决)

文章目录 1.webrtc camera测试2.ffmpeg 测试3.Ubuntu 自带相机4.解决办法 环境&#xff1a;windows10系统下&#xff0c;VMware的Ubuntu-22.04系统 问题&#xff1a;摄像头出现兼容问题&#xff0c;本来是想开发测试的&#xff0c;Ubuntu方便些。买了海康2K的USB摄像头&#xf…

人机交互与现代战争

人机交互技术在现代战争中的应用越来越广泛&#xff0c;它可以帮助士兵更好地完成任务&#xff0c;提高作战效能&#xff0c;减少人员伤亡。人机交互与认知在军事应用方面的进展有很多&#xff0c;比如&#xff1a; &#xff08;1&#xff09;虚拟现实和增强现实技术&#xff1…

PAT甲级-1085 Perfect Sequence

题目 题目大意 在一组数中找到一个完美数列&#xff0c;满足M < mp&#xff0c;M是该数列的最大值&#xff0c;m是最小值&#xff0c;p是题目给定的一个常数。 思路 模拟或者二分法。二分法可用upper_bound()函数实现。 知识点 upper_bound() 和 lower_bound() 函数在&…

C高级编程 第十六天(树 二叉树)

1.树 1.1结构特点 非线性结构&#xff0c;有一个直接前驱&#xff0c;但可能有多个直接后继有递归性&#xff0c;树中还有树可以为空&#xff0c;即节点个数为零 1.2相关术语 根&#xff1a;即根结点&#xff0c;没有前驱叶子&#xff1a;即终端结点&#xff0c;没有后继森…