问题:

​ 通过gorm创建一条记录后,创建时间的unix_timestamp值比当前的时间的时间戳还大。

原因:

​ 查看连接数据库的dsn: "%s:%s@tcp(%s)/%s?charset=utf8&loc=Local&parseTime=true",创建记录的时候的时间戳是本地时间的,但是计算Duration的时候使用utc的当前时间戳减去记录的时间戳,Duration变成负值。

解决:

​ dsn改为: %s:%s@tcp(%s)/%s?charset=utf8&loc=UTC&parseTime=true