博主最近在生产环境遇到一个问题:通过mybatis框架将java.util.Date类型的数据写入MySQL时,实际存入的值与当前时间相差14小时。通过查找资料与debug,找到了解决方案,但并未确定具体原因,特此记录,留待后续继续研究。
问题描述
数据库表字段类型为datetime,存入new Date()
,期间相关日志如下:
2020-12-09 11:49:07.704 [DEBUG] [] - com.xxxMapper.insertSelective - ==> Parameters: 2020-12-09 11:47:16.814(Timestamp)
可见客户端传入的时间为当前时间2020-12-09 11:47:16.814
,但数据库中该字段被存储为2020-12-08 21:47:17
,在传入时间前14小时。数据库中另一使用CURRENT_TIMESTAMP
为默认值的字段值为2020-12-09 11:47:17
,与当前时间一致。
客户端版本:
<dependency>