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

相关文章

  • SpringBoot详细分析自动装配原理并实现starter

    SpringBoot详细分析自动装配原理并实现starter

    相对于传统意义上的Spring项目,SpringBoot具有开箱即用,简化配置,内置Tomcat等等等等一系列的特点。在这些特点中,最重要的两条就是约定优于配置和自动装配
    2022-07-07
  • spring boot高并发下耗时操作的实现方法

    spring boot高并发下耗时操作的实现方法

    这篇文章主要给大家介绍了关于spring boot高并发下耗时操作的实现方法,文中通过示例代码介绍的非常详细,对大家学习或者使用spring boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-11-11
  • log4j2 xml配置文件屏蔽第三方依赖包的日志方式

    log4j2 xml配置文件屏蔽第三方依赖包的日志方式

    这篇文章主要介绍了log4j2 xml配置文件屏蔽第三方依赖包的日志方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • Java中的二维数组的赋值与输出方式

    Java中的二维数组的赋值与输出方式

    这篇文章主要介绍了Java中的二维数组的赋值与输出方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • SpringBoot3整合WebSocket详细指南

    SpringBoot3整合WebSocket详细指南

    SpringBoot 3 整合 WebSocket 提供了一种高效的实时通信解决方案,通过本文的配置和示例,可以快速实现,感兴趣的哦朋友跟随小编一起看看吧
    2024-12-12
  • Java如何识别图片或扫描PDF中的文字详解

    Java如何识别图片或扫描PDF中的文字详解

    这篇文章主要介绍了Java如何识别图片或扫描PDF中文字的相关资料,介绍了Java中使用Spire.OCRforJava库来识别图片和扫描PDF文件中的文字,需要的朋友可以参考下
    2025-01-01
  • Java Mybatis框架多表操作与注解开发详解分析

    Java Mybatis框架多表操作与注解开发详解分析

    MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO为数据库中的记录
    2021-10-10
  • 解决mybatis #{}无法自动添加引号的错误

    解决mybatis #{}无法自动添加引号的错误

    这篇文章主要介绍了解决mybatis #{}无法自动添加引号的错误,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • java中的JsonSerializer用法,前后端单位转换必备

    java中的JsonSerializer用法,前后端单位转换必备

    这篇文章主要介绍了java中的JsonSerializer用法,前后端单位转换必备!具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • SpringBoot3实现优雅停机的完整流程

    SpringBoot3实现优雅停机的完整流程

    在现代微服务架构中,优雅停机(Graceful Shutdown)是一项重要功能,可以确保服务在关闭时处理完所有当前请求,避免突然终止连接或丢失数据,Spring Boot 3 提供了对优雅停机的内置支持,本文给大家介绍了SpringBoot3怎样优雅停机,需要的朋友可以参考下
    2024-10-10

最新评论