MySQL读取与写入时间的不一致----时区问题

排查问题:

1、保证系统时间与世界标准时间同步并设置正确的时区

下载ntp
yum install ntp
与系统时间同步
ntpdate time.nist.gov
设置成中国时区PRC
cp /usr/share/zoneinfo/PRC /etc/localtime
查看系统时间
date

2、MySQL与服务器系统时间是否一致

查看MySQL的当前时间
select now();

不一致的话,查看MySQL使用的时区
show variables like '%time_zone%';
- system_time_zone 表示正在使用的时区
- time_zone 表示MySQL采用时间相比正在使用的系统时区时间(SYSTE表示不作修改使用正在使用的时区,-+8:00表示在UTC时区基础上修改并保存,不用system_time_zone的时区)

# 全局修改,重新连接即可生效!
set global time_zone = 'SYSTEM/-+8:00';
flush privileges;

3、查看 JDBC驱动包mysql-connector-java

  • 使用的版本是5.x.xx 的会根据程序传递数据,直接插入更新,不会有时区问题
  • 使用的8.x.xx的版本,写入数据时会自动根据传入时间URL中的时区和mysql的时区进行时间转换并存储

(1)项目设置数据库连接URL中设置时区serverTimeZone=Asia/Shanghai

url: jdbc:mysql://IP地址/库名?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimeZone=Asia/Shanghai&allowMultiQueries=true

4、与前端json交互时时间类型数据会携带时区

spring:
jackson:
default-property-inclusion: non_null
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

脑神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值