今天使用mybatis查询mysql中的数据时,莫名其妙的所有时间都出错了,所有时间都比数据库时间多了14小时,考虑了一下,初步判定是系统时区的问题。因为mysql时区设置默认是操作系统时区。
mysql运行命令show variables like ‘%time_zone’,发现system_time_zone项果然是CST。
解决方案
解决方法1.
修改一下mysql的时区设置即可。
mysql输入命令:set global time_zone=’+8:00’; 设置为东八区
解决方法2.
返回的时间实际上是正确的,只是时区为CST,在java中利用LocalDateTime进行一下时区转换为CTT即可。
public static Date transferCstToUtc8(Date cstTime) {
Instant cstInstant = cstTime.