SSM之一步一坑:将date类型存入到datetime类型数据表 时差八小时

在使用SSM框架进行项目开发时,遇到登录时间存入MySQL数据库后与北京时间相差八小时的问题。经过排查,发现是由于数据库连接配置中的时区设置为UTC导致。本文详细介绍了如何通过修改时区配置,将serverTimezone从UTC改为CTT(Asia/Shanghai),即北京时间,从而解决时间存储偏差。

错误描述

记录登陆日志时需要保存登陆时间,我使用的是使用date获取系统时间,然后存到MySQL数据库,数据库中保存时间的字段类型为datetime。在进行数据存储操作后,查看数据库记录,发现时间与北京时间相差八小时!!!

如存入数据库时间

打印系统时间

错误查找

查看实体代码,打印使用date时的系统时间,与北京时间相同,那就是在使用mapping注解存入到数据库时出现的问题,一直百度都没有结果,整了两三个小时,偶然遇见这篇博客,才解决燃眉之急。

附链接:https://blog.youkuaiyun.com/anthony_1223/article/details/80474285

错误原因

我使用的是SSM框架,在连接数据库的文件中,使用的是如下描述

主要是时区问题,serverTimezone=UTC,将这个UTC改成serverTimezone=CTT即可,CTT(Asia&Shanghai)北京时间。

UTC:世界统一时间,世界标准时间,国际协调时间

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值