
使用 xom 的 created 自动写入创建时间,发现数据库里面的时间 晚了 8 小时
// 这是数据库里面的记录 2021-01-12 08:14:08 // 这是应该正常的时间 2021-01-12 16:14:08 然后在服务器上,打印时间相关的信息,发现也都是正常的
log.Printf("time now is %v", time.Now().Format(config.DateTimeLayout)) // 2021-01-12 16:14:08 log.Printf("time e is %+v %+v", *e.TZLocation, *e.DatabaseTZ) // local 信息比较多,但是显示 name:Local log.Printf("time is %+v", time.Now().Location()) // local 查看数据库的时区是 CST,也是中国时区
+------------------+--------+ | Variable_name | Value | +------------------+--------+ | system_time_zone | CST | | time_zone | SYSTEM | +------------------+--------+ 服务器上 shell,打印出来的时间也是正常的
$ date -R Tue, 12 Jan 2021 16:31:34 +0800 这么看,好像都是没有问题的,但是就是写入数据库之后,变成了-8 小时
1 sunshinev OP  按照官网的文档说 loc 默认是 UTC 的,那出现这种情况,就只能是 1. 服务器按照 CST 的格式给到 sql 库进行处理 2. sql 库 把传过来的值按照本地的 timezone CST 转换成 loc 的默认 UTC 来处理 就 -8 个小时 3. sql 库把记录写入到数据库,就变成了 服务器也是 CST,数据库也是 CST,但是莫名其妙 减去了 8 个小时 |
2 hugo2lee 2021-01-12 17:22:04 +08:00 数据库链接有没有加 loc=Local |
3 lunny 2022-02-25 20:42:05 +08:00 `engine.DatabseTZ =` |