文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

springboot数据库查询时出现时区差异问题怎么解决

2023-07-04 22:58

关注

今天小编给大家分享一下springboot数据库查询时出现时区差异问题怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

springboot数据库查询时出现的时区差异

最近项目中使用到多数据源将MySQL库中的数据迁移到mongo库中,发现取出后的数据与原数据时间上会出现8小时的相差,

最后度娘后终于解决问题,记录一下:

网上看到了两种比较实用的方法,因为使用的springboot原因,所以我这里使用的是在配置文件application.yml中进行修改,另外其他方法网上都可以搜到,

1.在连接数据库的配置上我们添加一项

&serverTimezone=GMT%2b8
 primary:      jdbc-url: jdbc:mysql://******:3306/***?useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2b8      username: ****      password: *****    secondary:      jdbc-url: jdbc:mysql://*******:3306/***?useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2b8      username: *****      password: ********

原格式应该是这样的:

&serverTimezone=GMT+8 这里使用%2b替换 + 号

2.直接在boot配置文件中增加jackson配置

#在application.yml中增加配置spring:    jackson:        time-zone: GMT+8

这样就可以成功将时间修改成功了,还有其他方法,大家可以查阅哦

springboot new Date()时区差8小时

1 在k8s环境中,在代码中比较时间。new Date() 下相差8小时

检查宿主机 时区是 cst时区

用java代码写出controller时区发现是GMT

代码如下:

Calendar calendar = Calendar.getInstance();              System.out.println("目前时间:" + calendar.getTime());        System.out.println("Calendar时区::" + calendar.getTimeZone().getID());        System.out.println("user.timezone:" + System.getProperty("user.timezone"));        System.out.println("user.country:" + System.getProperty("user.country"));        System.out.println("默认时区:" + TimeZone.getDefault().getID());

输出时区是 GMT 跟宿主机还不一样,搞不定运维,自己搞把

看来还是时区搞的鬼-

数据库链接db添加参数 serverTimezone=Asia/Shanghai

springboot启动脚本添加 -Duser.timezone=GMT+08

jackson 全局配置

spring.jackson.date-format: yyyy-MM-dd HH:mm:ssspring.jackson.time-zone: GMT+8

jackson 注解

@JsonFormat(timezone = “GMT+8”, pattern = “yyyy-MM-dd HH:mm:ss”)

以上就是“springboot数据库查询时出现时区差异问题怎么解决”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯