登录  /  注册
首页 > Java > java教程 > 正文

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

PHPz
发布: 2023-06-04 17:37:03
转载
1299人浏览过

    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 跟宿主机还不一样,搞不定运维,自己搞把

    看来还是时区搞的鬼-

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

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

    3、jackson 全局配置

    spring.jackson.date-format: yyyy-MM-dd HH:mm:ss
    spring.jackson.time-zone: GMT+8
    登录后复制

    4、jackson 注解

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

    以上就是springboot数据库查询时出现时区差异问题怎么解决的详细内容,更多请关注php中文网其它相关文章!

    智能AI问答
    PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
    相关标签:
    来源:亿速云网
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
    最新问题
    关于CSS思维导图的课件在哪? 课件
    凡人来自于2024-04-16 10:10:18
    热门教程
    更多>
    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送
    PHP中文网APP
    随时随地碎片化学习
    PHP中文网抖音号
    发现有趣的

    Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号