当前位置: 代码网 > it编程>编程语言>Java > SpringBoot项目中Date类型数据在接口返回的时间不正确的问题解决

SpringBoot项目中Date类型数据在接口返回的时间不正确的问题解决

2024年09月13日 Java 我要评论
问题描述在springboot项目中,接口难免会使用到日期类型,我的数据使用的是mysql,表中的日期字段类型为 datetime ,java实体类中对应的类型为date类。结果发现返回给前端的时间不

问题描述

在springboot项目中,接口难免会使用到日期类型,我的数据使用的是mysql,表中的日期字段类型为 datetime ,java实体类中对应的类型为date类。结果发现返回给前端的时间不对。

在这里插入图片描述

在这里插入图片描述

从图片可以看出:
1、时间为 00:00:00 ,变成了前一天的 04:00:00;
2、时间为16:53:40 , 变成了当天的 08:53:40;

原因分析:

经过分析,貌似时间如果是12小时制的话,就与正确的时间相差8小时了,这刚好也是时区差。

所以这里有两个坑:1、在yaml配置文件中,使用了spring.jackson.data-format 来进行日期类型的格式化;

# 这是一开始的写法,不小心把 小时 写成了hh,这是12小时制
spring:  
  jackson:
    date-format: yyyy-mm-dd hh:mm:ss

2、就是时区问题,经过查阅自动配置类jacksonautoconfiguration发现,如果没有配置时区的话,不会给时区赋值,默认就是null。

在这里插入图片描述

解决方案:

解决时间制以及时区问题,只需要对配置文件重新配置就可以解决问题。

#正确配置如下
spring:  
  jackson:
	#24小时制
    date-format: yyyy-mm-dd hh:mm:ss
    #设置东八时区
    time-zone: gmt+8

配置完成后重启项目,调用接口发现,时间已经可以正确获取了!

在这里插入图片描述

到此这篇关于springboot项目中date类型数据在接口返回的时间不正确的问题解决的文章就介绍到这了,更多相关springboot date接口返回内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com