1.获取当前时间戳
fmt.Println(time.Now().Unix()) //1561713322
2.格式化时间
println("当前时间戳:", time.Now().Unix()) //时间戳
println("时间1:", time.Now().Format("2006-01-02 15:04:05"))
println("时间2:", time.Now().Format("2006-01-02"))
//时间戳转时间
var unix int64
unix = 1677749232
tt := time.Unix(unix, 0)
fmt.Println("时间戳转时间", tt.Format("2006-01-02 15:04:05"))
/*
输出:
当前时间戳: 1679219767
时间1: 2023-03-19 17:56:07
时间2: 2023-03-19
时间戳转时间 2023-03-02 17:27:12
*/
为什么是"2006-01-02 15:04:05",这是个奇葩,必须是这个时间点, 据说是go诞生之日, 记忆方法:6-1-2-3-4-5
3.str格式化时间转时间戳
3.1 time.Date
theTime := time.Date(2023, 1, 1, 12, 23, 12, 0, time.Local)
println(theTime.Unix()) //1672546992
3.2 time.Parse
//方式2
t := "2023-03-02 17:27:12"
theTime1, err := time.Parse("2006-01-02 15:04:05", t)
if err != nil {
fmt.Println(err.Error())
}
unixTime1 := theTime1.Unix()
fmt.Println("方式2: ", unixTime1-8*3600) // 1677778032 时区问题多了8个小时,需要减去8*3600
/*
方式2: 1677749232
*/
3.3 ParseInLocation
//方式3
t := "2023-03-02 17:27:12"
var LOC, _ = time.LoadLocation("Asia/Shanghai")
theTime2, err := time.ParseInLocation("2006-01-02 15:04:05", t, LOC)
if err != nil {
fmt.Println(err.Error())
}
fmt.Println("方式3: ", theTime2.Unix())
/*
方式3: 1677749232
*/
网友评论