一.根据时间戳获取日期
// 获取时间,该时间带有时区等信息,获取的为当前地区所用时区的时间
timeNow := time.Now()
// 获取时间戳
unix := time.Now().Unix()
// 获取UTC时区的时间
utcTime := time.Now().UTC()
// go语言固定日期模版
timeLayout := "2006-01-02 15:04:05"
// time.Unix的第二个参数传递0或10结果一样,因为都不大于1e9
timeStr := time.Unix(unix, 0).Format(timeLayout)
fmt.Println(timeNow, unix, utcTime, timeStr)
// 获取年月日,其中month为string,也就是英文的月份
year, month, day := time.Now().Date()
fmt.Printf("year is %+v, month is %+v, day is %+v
", year, month, day)
二.将时间转换为时间戳
// string转化为时间,layout必须为 "2006-01-02 15:04:05"
times, _ := time.Parse(timeLayout, "2014-06-15 08:37:18")
timeUnix := times.Unix()
fmt.Printf("times is %+v
, timeUnix is %+v", times, timeUnix)
三. 根据mysql中timestamp字段获取时间字符串
如下实例,其中lectureModel的create_time字段为timestamp
lecture, err := ll.lectureModel.FindOne(req.LectureId)
// 获取当前时区unix时需要减去3600*8,原因是mysql存储的时间为UTC时间
unixT := lecture.CreateTime.Unix() - 3600*8
timeStr := time.Unix(unixT, 0).Format(DateDetailLayout)