【问题标题】:Reset time.Time in mgo struct在 mgo 结构中重置 time.Time
【发布时间】:2014-01-22 06:32:46
【问题描述】:

简化结构:

type User struct {
    ResetToken     string        `bson:"resettoken,omitempty" json:"resettoken"`
    ResetSent      time.Time     `bson:"resetsent,omitempty" json:"resetsent"`
}

现在成功(密码)重置它应该设置 ResetToken = "" 和 将 ResetSent 设置为“未初始化”,即 0 或初始值或空,您可以命名它。

在字符串的情况下,它是用 "" 和 ",omitempty" 完成的 但是我该如何处理 time.Time?

【问题讨论】:

    标签: go mgo


    【解决方案1】:

    时间零是time.Time{},您可以使用time.IsZero(t) 检查它是否为零。所以,类似:

    user.ResetSent = time.Time{}
    

    如果你真的需要omitempty,你可以使用*time.Time,所以如果为nil,它会留空。

    更新: Gustavo 的评论是正确的,omitempty 按零值时间的预期工作,没有指针。

    【讨论】:

    • 请注意,不需要使用指针让omitemptytime.Time 工作。 mgo/bson 自己会调用 IsZero 来判断它是否为“空”。
    • 你是对的。我可以发誓在我测试时它对我不起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-19
    • 2014-01-17
    • 1970-01-01
    • 2016-02-28
    • 2015-02-04
    • 2015-11-12
    • 1970-01-01
    相关资源
    最近更新 更多