Your Question
// PG 连接使用的时区参数,PG 使用的是 UTC TimeZone=Asia/Shanghai
// Model
type User struct {
ID int64 `gorm:"column:id;primaryKey;" json:"id"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;" json:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;" json:"updatedAt"`
}
保存
user := &{
CreatedAt: time.Now(), // time.Now() 使用了电脑默认的时区,在中国使用的是东八区
UpdatedAt: time.Now(),
}
保存到 PG 的时间没有了时区,也就是保存到 PG 的时间为 UTC,比实际时间大了8个时区。(比如 2022-01-21 09:05:13 +8 的北京时间保存到数据库的 UTC时间还是 2022-01-21 09:05:13 +0,这样数据库的时间比实际大了八个小时 )
请问如何在保存时间的时候把东八区的时间转换成 UTC 的时区再保存,同时取数据库 UTC 的时间如何转换成本地时区的时间。
Comment From: li-jin-gou
可以看下这个 https://gorm.cn/zh_CN/docs/session.html#NowFunc