HOME
BLOG
go时间操作
11月 08 2023

获取当前时间

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
currentTime:=time.Now()     //获取当前时间,类型是Go的时间类型Time

t1:=time.Now().Year() //年

t2:=time.Now().Month() //月

t3:=time.Now().Day() //日

t4:=time.Now().Hour() //小时

t5:=time.Now().Minute() //分钟

t6:=time.Now().Second() //秒

t7:=time.Now().Nanosecond() //纳秒

//如果获取UTC时间,则可以使用time.UTC
currentTimeData:=time.Date(t1,t2,t3,t4,t5,t6,t7,time.Local) //获取当前时间,返回当前时间Time

fmt.Println(currentTime) //打印结果:2017-04-11 12:52:52.794351777 +0800 CST

fmt.Println(t1,t2,t3,t4,t5,t6) //打印结果:2017 April 11 12 52 52

fmt.Println(currentTimeData) //打印结果:2017-04-11 12:52:52.794411287 +0800 CST

获取当前时间戳

1
2
timeUnix:=time.Now().Unix()            //单位s,打印结果:1491888244
timeUnixNano:=time.Now().UnixNano() //单位纳秒,打印结果:1491888244752784461

获取当前时间字符串格式

1
2
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

时间戳转时间字符串 (int64 —> string)

1
2
3
4
5
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

时间字符串转时间(string —> Time)

1
2
3
4
5
6
7
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
}

时间字符串转时间戳 (string —> int64)

1
比上面多一步,formatTime.Unix()即可

时区处理

1
2
3
4
l,_ := time.LoadLocation("Asia/Shanghai")
fmt.Println(time.Now().In(l))
l,_ = time.LoadLocation("America/Adak")
fmt.Println(time.Now().In(l))