如何解决springboot数据库查询时出现的时区差异问题
作者:这小呆 发布时间:2024-01-26 01:53:01
标签: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 跟宿主机还不一样,搞不定运维,自己搞把
看来还是时区搞的鬼-
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”)
来源:https://blog.csdn.net/qq_35501880/article/details/102736685


猜你喜欢
- 1. 线程的概念线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程I
- 标记路径演示效果:实例代码import matplotlib.pyplot as pltimport matplotlib.path as
- 本文实例讲述了php实现的三个常用加密解密功能函数。分享给大家供大家参考,具体如下:算法一://加密函数function lock_url(
- 创建python虚拟环境virtualenv、virtualenvwrapper1,为什么需要搭建虚拟环境由于当机器上两个项目依赖于相同包的
- python35 urllib2 不能用Could not find a version that satisfies the requir
- 以此文记录Python与Tensorflow及其开发环境的安装与配置过程,以备以后参考。1 硬件与系统条件 Win7 64位系统,显卡为NV
- 如下表:AggregationTableIdName1赵2钱1孙1李2周如果想得到下图的聚合结果IdName1赵孙李2钱周利用SUM、AVG
- Numpy 是Python科学计算的一个核心模块。它提供了非常高效的数组对象,以及用于处理这些数组对象的工具。一个Numpy数组由许多值组成
- 创建RandomWalk类为模拟随机漫步,我们将创建一个RandomWalk类,随机选择前进方向,这个类有三个属性,一个存储随机漫步的次数,
- 之前遇到技术问题总能在技术博客上得到启发,十分感谢各位的无私分享。而自己却很少发文,固然是水平有限,但也限制了知识积累和总结。今后多总结分享
- 这是我的xml文件结构<?xml version='1.0' encoding='utf-8'?>
- 大家平时见到google的广告太多了,但有没有兴趣知道一下它的运行过程呢?下面我们一起来看看这个广告代码的执行过程,以及其中的一些精彩内容。
- 前端版本更新检查,实现页面自动刷新使用vite对项目进行打包,对 js 和 css 文件使用了 chunkhash 进行了文件缓存控制,但是
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML&n
- 本文实例讲述了python读写二进制文件的方法。分享给大家供大家参考。具体如下:初学python,现在要读一个二进制文件,查找doc只发现
- 数据准备moduls.py# 构建表结构from django.db import models# 表app01_publishclass
- 下面的查询选择所有 date_col 值在最后 30 天内的记录。 mysql> SELECT something FROM tbl_
- 本文实例为大家分享了python实现日历效果的具体代码,供大家参考,具体内容如下一、代码编程过程1、根据年月日算出星期几def get_we
- Python3进制之间的转换在Python里面实现进制之间的转换是非常方便的,有专门的函数来进行这个操作:下面直接上代码:# 进制之间的转换
- 一、使用场景需求1、在实际项目开发过程中,用户可以操作的数据,我们往往会新增一个字段,来保存用户最后一次修改时间2、一些系统中,我们需要存储