时间
incorrect datetime value ‘0000-0-0 00:00:00’ for column 问题
时间戳
now:= time.Now()
fmt.Println(now.Unix()) // 1565084298 秒
fmt.Println(now.UnixNano()) // 1565084298178502600 纳秒
fmt.Println(now.UnixNano() / 1e6) // 1565084298178 毫秒
时间修改
package main
import (
"fmt"
"time"
)
func main() {
nowTime := time.Now()
getTime := nowTime.AddDate(0, 0, -1) //年,月,日 获取一天前的时间
resTime := getTime.Format("2006-01-02 15:04:05+08") //获取的时间的格式
fmt.Println(resTime)
getTime = nowTime.AddDate(0, -1, 0) //年,月,日 获取一个月前的时间
resTime = getTime.Format("2006-01-02 15:04:05") //获取的时间的格式
fmt.Println(resTime)
getTime = nowTime.AddDate(-2, 0, 0) //年,月,日 获取两年前的时间
resTime = getTime.Format("20060102") //获取的时间的格式
fmt.Println(resTime)
}
时间格式化
3、获取当前时间的字符串格式
timeStr:=time.Now().Format("2006-01-02 15:04:05") //当前时间的字符串,2006-01-02 15:04:05据说是golang的诞生时间,固定写法
fmt.Println(timeStr) //打印结果:2017-04-11 13:24:04
4、它们之间的相互转化
1) 时间戳转时间字符串 (int64 —> string)
timeUnix:=time.Now().Unix() //已知的时间戳
formatTimeStr:=time.Unix(timeUnix,0).Format("2006-01-02 15:04:05")
fmt.Println(formatTimeStr) //打印结果:2017-04-11 13:30:39
2) 时间字符串转时间(string —> Time)
formatTimeStr=”2017-04-11 13:33:37”
formatTime,err:=time.Parse("2006-01-02 15:04:05",formatTimeStr)
if err==nil{
fmt.Println(formatTime) //打印结果:2017-04-11 13:33:37 +0000 UTC
}
3) 时间字符串转时间戳 (string —> int64)
比上面多一步,formatTime.Unix()即可