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

 更新时间:2024年09月13日 10:13:38   作者:大白菜小咸鱼  
如果接口返回的Date类型时间与数据库中datetime不一致,可能是由于没有正确配置时区导致的,解决方法是在yaml配置文件中指定正确的日期格式和时区配置,修改配置并重启项目后,可以获得正确的时间,下面就来介绍一下

问题描述

在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接口返回内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 解决java.sql.SQLException:The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized问题

    解决java.sql.SQLException:The server time zone value &apo

    这篇文章主要介绍了解决java.sql.SQLException:The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • 深度优先与广度优先Java实现代码示例

    深度优先与广度优先Java实现代码示例

    这篇文章主要介绍了深度优先与广度优先Java实现代码示例,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • 一篇文章教带你了解Java Spring之自动装配

    一篇文章教带你了解Java Spring之自动装配

    今天小编就为大家分享一篇关于Spring中的自动装配,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2021-09-09
  • Feign调用服务各种坑的处理方案

    Feign调用服务各种坑的处理方案

    这篇文章主要介绍了Feign调用服务各种坑的处理方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • 新手入门学习Spring Freemarker教程解析

    新手入门学习Spring Freemarker教程解析

    这篇文章主要介绍了新手入门学习Freemarker教程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • Mybatis拦截器实现分页

    Mybatis拦截器实现分页

    本文介绍使用Mybatis拦截器,实现分页;并且在dao层,直接返回自定义的分页对象。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • springboot项目中没有识别到yml文件解决办法

    springboot项目中没有识别到yml文件解决办法

    这篇文章主要给大家介绍了springboot项目中没有识别到yml文件解决办法,文中通过代码示例给大家讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-01-01
  • Java 实现协程的方法

    Java 实现协程的方法

    这篇文章主要介绍了Java 实现协程的方法,帮助大家更好的理解和学习Java,感兴趣的朋友可以了解下
    2020-10-10
  • Mybatis迁移到Mybatis-Plus的实现方法

    Mybatis迁移到Mybatis-Plus的实现方法

    这篇文章主要介绍了Mybatis迁移到Mybatis-Plus的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Java并发编程中的阻塞队列解析

    Java并发编程中的阻塞队列解析

    这篇文章主要介绍了Java并发编程中的阻塞队列解析,阻塞队列BlockingQueue是一个支持两个附加操作的队列,这两个附加的操作是在队列为空时,获取元素的线程会等待队列变为非空,当队列满时,存储元素的线程会等待队列可用,需要的朋友可以参考下
    2023-08-08

最新评论