• 创建时间Created

    创建时间Created

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

    1. type User struct {
    2. Id int64
    3. Name string
    4. CreatedAt time.Time `xorm:"created"`
    5. }

    1. type JsonTime time.Time
    2. func (j JsonTime) MarshalJSON() ([]byte, error) {
    3. return []byte(`"`+time.Time(j).Format("2006-01-02 15:04:05")+`"`), nil
    4. }
    5. type User struct {
    6. Id int64
    7. Name string
    8. CreatedAt JsonTime `xorm:"created"`
    9. }

    1. type User struct {
    2. Id int64
    3. Name string
    4. CreatedAt int64 `xorm:"created"`
    5. }

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

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

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

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