golang 深坑系列,今天发现一个坑。
使用 time.Parse 将字符串转化为time.Time{} 之后,用gorm执行写入sql,结果居然多了8个小时。
而其实看执行的语句,都是 update xxxx set start_time = ‘2021-06-01 00:00:00’
但执行完毕之后,时间却变成了 ‘2021-06-01 08:00:00’
解决办法,客户端传入的时间,通过 time.ParseInLocal() 方法去转换。
var dt time.Time
loc, _ := time.LoadLocation("Asia/Shanghai")
dt, err = time.ParseInLocation("2006-01-02", "2021-06-20", loc)
Golang时间处理陷阱
本文介绍了一个关于Golang中时间处理的陷阱,在使用time.Parse进行时间格式化后,通过gorm框架写入数据库时出现时间偏移的问题及解决方案。
1127

被折叠的 条评论
为什么被折叠?



