解决前端获取后端返回的日期类型数据少一天的问题

JSON(@RequestBody请求+@ResponseBody响应)--日期类型参数传递 本文介绍了SpringMVC中处理JSON数据交互和日期类型参数传递的方法。主要内容包括:1)使用@RequestBody接收前端发送的JSON数据(包括普通数组、对象和对象数组),需添加Jackson依赖并开启注解支持;2)通过@ResponseBody返回JSON响应数据;3)处理日期类型参数时需使用@DateTimeFormat指定格式。文章还对比了@RequestBody和@RequestParam的区别,前者用于接收JSON数据,后者用于接收URL或表单参数。最后解释了SpringMVC通过Con 阅读详情
  1. application.yml中进行以下配置
spring: 
  jackson:
    date-format: yyyy-MM-dd
    time-zone: GMT+8
  1. 使用注解
@JsonFormat(pattern = "yyyy-MM-dd",time-zone="GMT+8")
private Date createDate;

使用JsonFormat可能会出现以下错误信息

Field error in object 'user' on field 'createDate': rejected value [2019-09-22]; 
codes [typeMismatch.user.createDate,typeMismatch.createDate,typeMismatch.java.util.Date,typeMismatch];
arguments [org.springframework.context.support.DefaultMessageSourceResolvable: 
codes [user.createDate,createDate]; arguments []; default message [createDate]]; 
default message [Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date' for property 'createDate'; 
nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [@com.fasterxml.jackson.annotation.JsonFormat java.util.Date] for value '2019-09-22'; 
nested exception is java.lang.IllegalArgumentException]]

解决:使用DateTimeFormat注解指定日期格式, 然后再配置yml文件解决时区问题

@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date createDate;
@DateTimeFormat用法、@JsonFormat格式化日期时间后比原来的时间少了八小时问题用法 DateTimeFormat:作用域为入参,针对路径传参方式生效,作用是入参日期格式化,前端传入日期格式字符串到后端,会自动转换为日期类型。@JsonFormat:作用域为出参、入参,针对 @RequestBody 请求体入参或出参都有效果,作用是把日期类型和日期字符串相互转换。 阅读详情

相关推荐

地平线Matrix-Client实战:3分钟搞定摄像头调试与3D视图配置(附避坑指南)

本文详细介绍了地平线Matrix-Client在摄像头调试与3D视图配置中的实战技巧,包括环境准备、核心功能快速上手、高阶调试与性能优化等。通过3分钟快速配置指南和避坑建议,帮助开发者高效完成智能视觉系统开发,特别适用于自动驾驶和机器人视觉领域。

w7x8y9z的博客 266

Java 日期 解析减少一天问题

Java 日期 解析减少一天问题

leveretz的博客 2271

CCF CSP历年题解(python)

菜鸡一枚,没参加过算法竞赛,单纯为了抵研究生考试复试才刷题,通过写博客记录下来,希望能和大家互相交流,代码质量不高,大家见谅。 因为考研等原因,题目不定期更新… 第一题 201312-1出现最多次数的数 ...

weixin_44690402的博客 5004

Java 日期 解析减少一天问题。神奇

复盘  今天在做一个入库项目,shuju信息入库后,重新编辑发现出生日期减少了一天,比如1987-08-04,转换到界面后却变成了1987-08-03,  问题发现过程     1 先看前端是否有特殊处理,经过检查发现没有问题。     2 找到获取专家基本信息接口,调用发现返回的日期的确是少了一天,这里可以判断问题出在后端     3 然后断点,发现在接口最终返回的是一个date类型,这可以断定...

samz5906的专栏 1万+

Ubuntu使用cmake出现Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed

解决 Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed

qq_44225529的博客 1万+

自动驾驶IDM与MOBIL模型

IDM模型,自动驾驶

不想学好数学的汽车工程师不是一个好的程序员 1万+

解决出生日期字段每保存一次就减少一天的问题

【代码】解决出生日期字段每保存一次就减少一天的问题。

tanzongbiao的专栏 568

22版本Altium Designer导出生产文件的规范化操作指南

本文详细介绍了PCB设计中的Gerber文件导出流程及相关文件生成方法。主要内容包括:1)Gerber文件导出的5个关键设置步骤;2)NC钻孔文件的导出方法;3)坐标文件的生成方式;4)文件打包规范要求必须包含Gerber文件、NC钻孔文件和坐标文件;5)文件提交的两种方式(新手推荐提交原始工程文件,量产推荐仅提交Gerber文件包)。文章还特别强调了单位一致性、精度验证等注意事项,为PCB设计文件的规范输出提供了完整指导。

qq_56506325的博客 1055

springboot接收日期参数差一天的问题

解决方法: 1. @DateTimeFormat(pattern = “yyyy-MM-dd”) @JsonFormat(pattern=“yyyy-MM-dd”,timezone=“GMT+8”) private Date award_date;//这里是你自己的时间类型的字段,在它上面加上这两个注解 在连接数据库的语句后面添加参数: characterEncoding=utf8&allowMultiQueries=true&useSSL=false&serverTimezo

qq_40852612的博客 1111

kubeadm init 运行时kebelet启动失败问题

解决k8s kubeadm init时遇到的kubelet问题

ZDPZN的博客 6074

MATLAB点云处理(八):为点云添加高斯噪声

本文对如何借助MATLAB,为点云添加高斯噪声做出了说明,并给出实现代码。

孙悟空 2844

Springboot:返回给前端json格式中日期类型时间戳转日期时间格式的问题处理

在Springboot框架中,后端controller返回给前端日期类型变成了时间戳,需要转为日期时间。 在config的WebMvcConfigurer配置如下 @Configuration public class WebAppConfigurer implements WebMvcConfigurer { public HttpMessageConverter<String> stringConverter() { StringHttpMessageCon

奋斗鱼 4600

GPS系统跟踪捕获算法的Verilog实现在FPGA

本文将介绍GPS系统中的跟踪捕获算法,并提供该算法的Verilog实现在FPGA上运行的源代码。常用的方法是将接收到的信号与一个本地振荡器产生的参考信号进行混频,然后使用带通滤波器提取出希望得到的频率分量。码跟踪的目的是通过检测接收到的信号中的码片序列来实现对导航数据的解调。以上是一个简化的GPS系统跟踪捕获算法的Verilog实现,其中包含了时间检测、频率跟踪和码跟踪三个模块。GPS信号由载波频率和导航数据组成。跟踪捕获算法的目标是通过对接收到的信号进行处理,从而获取到准确的载波频率和导航数据。

PixelEnigma的博客 1108

Java后端返回的MySQL日期数据在前端格式错误的解决方法,区分jackson和fastjson

web项目后端返回的MySQL日期数据(date)类型在前端显示不正确,出现一串数字的时间戳,或日期晚了一天。注意区分Jackson和FastJson以及其他的Json格式类型,不同Json注解不同。

Carmelo_7的博客 1129

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

记录一次问题排查,前台传的日期参数到后台取到的时候少了一天。

我的问题是前台通过http请求,向后台发送请求,请求参数中有一个日期参数以json的形式传参给后台。我通过日志打印,可以看到后台将json转为对象的时候对象的date属性的值是2025-01-07。可以看到是少了一天的。即前台传过来的对象只进行了spring的类型转换就少了一天。这里简单记录一下排查的思路:首先将同样的代码和配置扔到其它测试环境的服务器上去部署,发现没有问题。这证明了代码和配置是没有问题的,问题就定位到了服务器相关的配置。

qq_42985657的博客 1286

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

后端接收日期类型_后端对前台传递的日期类型处理的两种方式

大家平时可能接触到前台传到后台的日期类型,那么大家是如何处理的呢?我先说说我之前是怎么处理的吧!1、@JsonFormat注解我之前一直使用这种方式来接收前台传进来的日期类型,当初感觉挺好用的,一直用一直爽,直到有一天,前端传进来的日期类型变了,本来的格式是yyyy-MM-dd HH:mm:ss,突然有个数据成了yyyy-MM-dd, 就导致后台报错,类型转换异常。代码如下:public clas...

weixin_33201531的博客 1501

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

后端对前台传递的日期类型处理的两种方式

大家平时可能接触到前台传到后台的日期类型,那么大家是如何处理的呢?我先说说我之前是怎么处理的吧!1、@JsonFormat注解我之前一直使用这种方式来接收前台传进来的日期类型,当初感觉挺好用的,一直用一直爽,直到有一天,前端传进来的日期类型变了,本来的格式是yyyy-MM-dd HH:mm:ss,突然有个数据成了yyyy-MM-dd, 就导致后台报错,类型转换异常。代码如下:public clas...

weixin_34198453的博客 9968

前端选择日期后,传给后端的数据少了一天(后人挑重点完善版)

本文中改善的第二种方法:测试出来的。在yml配置文件中设置以下内容。首先类中长这样,不动!

桑想写点什么。。。 215

后端的日期类型赋值前端表单_后端获取前端数据的四种方式

获取数据(四种方式)1. url: 需要正则去匹配url(r'^index/(num)/$', view.index)匹配到的参数会自动传入对应的视图函数也可以给匹配到的参数起名字?Purl(r'^index/(?P\d*)(?P\w*)$',)使用url传参的时候,要么都使用位置参数,要么都使用给参数起名字的方式也可以通过request.path获取到url然后获取相应的参数.如访问127.0....

weixin_39900468的博客 389

后端的日期类型赋值前端表单_一次和前端的相互甩锅的问题记录

背景我们在APP上有个功能,需要获取用户当前定位,然后当用户关闭了GPS后,没有获取到用户定位,会触发一个bug,弹窗内容如下。问题分析这个问题的直接原因就是移动端的值取不到,导致没有给变量赋值,就将"undefined"传给了后端,后端的这个值定义的Integer,类型转换失败,报错。深层原因是异常处理机制有问题,于是后端和前端开始撕逼了前端观点: 后端代码太不健壮了, 就算前端传错了,也应该具...

weixin_32700139的博客 99

介绍数据库中有关日期的类型、java中有关日期的类型,还有input标签有关日期的类型,前端将 <input> 标签中的日期类型作为请求参数发送给后端以及jsp代码中将日期类型进行格式化

数据库和Java中的日期类型及格式: 数据库常见日期类型包括DATE(YYYY-MM-DD)、DATETIME(YYYY-MM-DD HH:MM:SS)、TIME(HH:MM:SS)和TIMESTAMP(带时区)。Java中日期类型包括java.util.Date、java.sql系列类型,以及Java8引入的java.time包下的LocalDate、LocalTime等更安全的类型。日期格式化可使用SimpleDateFormat(旧版)或线程安全的DateTimeFormatter(Java8+)。

2301_77011032的博客 1673

SpringMVC:返回的json中日期类型在前端显示的是时间戳格式的问题解决

问题: springMVC 返回的json串结果中包含的日期类型,传递给前端时,前端显示的是时间戳格式。 这时应该使用xml全局配置,将格式自动转换。 解决: 在dispatcher-servlet.xml或applicationContext.xml配置文件中添加以下内容,spring会自动将格式转换后返回给前端。 <!-- 定义注解驱动Controller方法处理适配器 ,注:该适配器必须声明在<mvc:annotation-driven />之前,否则不能正常处理参.

奋斗鱼 1231

前后端日期类型的传递和处理

最近在用Element-UI组件做一个日期选择的控件,然后通过日期控件选择出有效的日期时间,传递给后端,后端做相应的处理 但是这里遇到了一些头疼问题: 问题一: DateTimePicker控件显示的格式不正确 首先是Element-UI 日期时间组件默认下的时间格式并不是我们想要的yyyy-MM-dd HH:mm:ss 的格式,我们需要先在DatetimePicker控件的属性中修改它的...

立志欲坚不欲锐,成功在久不在速度 9588

后端数据库日期格式正常前端格式异常问题

老规矩 先上问题截图 后端查出的日期格式正常 前端swagger成了这个样子 就很离谱 问度娘问了一圈 也没解决 最后去找带我的大佬 得到了解决方案: 因为数据库里的日期格式是date 返回的时候应该转成string 不然给前端返回json的时候默认转码 会出问题 应该用date_format,输出字段用String类型,不能用日期类型 DATE_FORMAT(DATE, '%Y-%m-%d %H:%i:%s') date ...

qs_266的博客 1204
上一篇: 根据绝对路径获取相对路径
下一篇: 阿里云短信SDK使用
zxwwantlearnjava
博客等级 码龄7年 16粉丝 51原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值