问题引入

错误演示

在做项目时,前端表单中显示的有创建时间和修改时间,但是在做修改后发现修改时间与真实时间相差14个小时

如下图最后一条记录所示,当时修改时间理应是2020-11-10 16:43:33,实际却显示2020-11-10 02:43:33

image-20201110165859481

后端代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/**
* 新增数据
*
* @param section 实例对象
*/
@Override
public void insert(Section section) {
// 新增创建时间与更新时间
section.setCreatedAt(LocalDateTime.now());
section.setUpdatedAt(LocalDateTime.now());
this.sectionMapper.insert(section);
}

/**
* 修改数据
*
* @param section 实例对象
* @return 实例对象
*/
@Override
public void update(Section section) {
// 设置更新时间
section.setUpdatedAt(LocalDateTime.now());
this.sectionMapper.update(section);
}

解决

在MySQL命令行中依次执行如下命令即可解决问题:

1
2
3
set global time_zone='+08:00';
set time_zone='+08:00';
flush privileges;

再次修改,可以看到,修改时间已经正常。

image-20201110170735377