This repository has been archived on 2022-04-14. You can view files and clone it, but cannot push or open issues or pull requests.
manual-zh-CN/chapter-04/1.created.md

1.2 KiB
Raw Permalink Blame History

创建时间Created

Created可以让您在数据插入到数据库时自动将对应的字段设置为当前时间需要在xorm标记中使用created标记如下所示进行标记对应的字段可以为time.Time或者自定义的time.Time或者int,int64等int类型。

type User struct {
    Id int64
    Name string
    CreatedAt time.Time `xorm:"created"`
}

type JsonTime time.Time
func (j JsonTime) MarshalJSON() ([]byte, error) {
    return []byte(`"`+time.Time(j).Format("2006-01-02 15:04:05")+`"`), nil
}

type User struct {
    Id int64
    Name string
    CreatedAt JsonTime `xorm:"created"`
}

type User struct {
    Id int64
    Name string
    CreatedAt int64 `xorm:"created"`
}

在Insert()或InsertOne()方法被调用时created标记的字段将会被自动更新为当前时间或者当前时间的秒数对应为time.Unix()),如下所示:

var user User
engine.Insert(&user)
// INSERT user (created...) VALUES (?...)

最后一个值得注意的是时区问题默认xorm采用Local时区所以默认调用的time.Now()会先被转换成对应的时区。要改变xorm的时区可以使用

engine.TZLocation, _ = time.LoadLocation("Asia/Shanghai")