xorm-创建时间created



package main

import (
	"fmt"
	_ "github.com/go-sql-driver/mysql"
	"github.com/go-xorm/xorm"
	"log"
	"time"
)

var engine *xorm.Engine



type User struct {
	Name string `xorm:"varchar(25) 'usr_name'"`
	Id   int    `xorm:"pk 'id' autoincr"`
	CreatedAt time.Time `xorm:"created"`
}

type User1 struct {
	Id   int    `xorm:"pk 'id' autoincr"`
	Name string `xorm:"varchar(25) 'usr_name'"`
	CreatedAt int64 `xorm:"created"`
}



func main() {
	var err error
	engine, err = xorm.NewEngine("mysql", "root:123456@/test")
	if err != nil {
		log.Fatal(err)
		return
	}



	err = engine.CreateTables(User{})
	if err != nil {
		log.Fatal(err)
		return
	}

	err = engine.CreateTables(User1{})
	if err != nil {
		log.Fatal(err)
		return
	}



	/*在Insert()或InsertOne()方法被调用时,
	created标记的字段将会被自动更新为当前时间或者当前时间的秒数(对应为time.Unix()),如下所示:*/
	var user User
	user.Name="userName"
	_, err = engine.Insert(&user)
	if err!=nil{
		log.Fatal(err)
		return
	}
	fmt.Println("本地时区该数据建立时间:",user.CreatedAt)

	var user1 User1
	user1.Name="user1Name"
	_, err =engine.Insert(&user1)
	if err!=nil{
		log.Fatal(err)
		return
	}
	fmt.Println("本地时区该数据建立时间:",user1.CreatedAt)



	/*	默认xorm采用Local时区,所以默认调用的time.Now()会先被转换成对应的时区*/
	engine.TZLocation, _ = time.LoadLocation("EST")//美国东部时间

	var u User
	u.Name="userName"
	_, err = engine.Insert(&u)
	if err!=nil{
		log.Fatal(err)
		return
	}
	fmt.Println("美国西五区时间该数据建立时间:",u.CreatedAt)

	var u1 User1
	u1.Name="user1Name"
	_, err =engine.Insert(&u1)
	if err!=nil{
		log.Fatal(err)
		return
	}
	fmt.Println("美国西五区时间该数据建立时间:",u1.CreatedAt)



	/*	第一次输出:
			本地时区该数据建立时间: 2019-05-25 17:43:13.745542 +0800 CST
			本地时区该数据建立时间: 1558777393
			美国西五区时间该数据建立时间: 2019-05-25 04:43:13.749684 -0500 EST
			美国西五区时间该数据建立时间: 1558777393


	    第二次输出:
			本地时区该数据建立时间: 2019-05-25 17:43:48.537048 +0800 CST
			本地时区该数据建立时间: 1558777428
			美国西五区时间该数据建立时间: 2019-05-25 04:43:48.539141 -0500 EST
			美国西五区时间该数据建立时间: 1558777428

	*/


}

posted on 2019-05-25 17:46  j_x_x  阅读(713)  评论(0编辑  收藏  举报

导航