【问题标题】:gorm.Model timezone configuration using sqlitegorm.Model 时区配置使用 sqlite
【发布时间】:2019-08-12 16:05:25
【问题描述】:

我正在使用带有 sqlite 的 gorm。我的模型包括 gorm.Model 所以 gorm 为我处理 created_at, ...但默认情况下它使用本地时间保存所有审计日期(例如“2019-08-12 17:45:39.356009+02:00”)。有没有办法为自动生成的字段强制使用 UTC?行为是基于 gorm 本身还是基于底层 sql 数据库?

【问题讨论】:

    标签: sqlite go go-gorm


    【解决方案1】:

    如果您稍微阅读一下代码,您会发现delted_atcreated_atupdated_at 字段由函数gorm.NowFunclink 控制。

    根据文档:

    //    gorm.NowFunc = func() time.Time {
    //      return time.Now().UTC()
    //    }
    

    【讨论】:

    • 谢谢@sberry!只是为了确保我完全理解这个场景(对不起,我是新手)。我可以将 sn-p gorm.NowFunc... 放入我的应用程序主程序中,以确保它总是被应用,或者在我创建我的 gorm.DB 之后调用 db.SetNowFuncOverride(myNowFunc) 总是到我的主程序中(我创建gorm.DB 在 main 中,我将作为依赖注入到我的所有子类中)
    • @Crixo 是的,完全正确!我什至没有看到SetNowFuncOverride
    猜你喜欢
    • 2016-05-08
    • 1970-01-01
    • 2011-01-16
    • 1970-01-01
    • 2014-11-16
    • 1970-01-01
    • 2021-06-09
    • 1970-01-01
    • 2015-06-03
    相关资源
    最近更新 更多