Go语言中的time包是与时间相关的包,提供了丰富的时间操作函数和类型。
基本时间类型(time.Time)
Go语言中的基本时间类型是time.Time。它表示一个具体的时间点。其中包含年月日时分秒纳秒等信息。
常用时间常量
虽然在Go语言中时间的类型比较复杂,但是提供了一些常量用来快速生成时间。
time.Now()函数
time.Now()可以获取当前的时间。
获取时间戳
获取当前时间的时间戳(秒级别):time.Now().Unix()。
获取指定时间的时间戳:time.Date(2021, 10, 1, 11, 15, 0, 0, time.Local).Unix()。
格式化时间
format 函数的使用方式比较灵活,可以对日期的各部分进行格式化,可以是时间戳或time.Time类型的字符串进行格式化。
时间戳格式化:
t := time.Now()
fmt.Println(t.Format("2006-01-02 15:04:05"))
time.Time类型格式化:
t := time.Now()
fmt.Println(t.Format("2006-01-02 15:04:05"))
也可以将日期字符串转换成time.Time类型进行格式化:
timeStr := "2021-10-01 11:15:00"
t, _ := time.ParseInLocation("2006-01-02 15:04:05", timeStr, time.Local)
fmt.Println(t.Format("2006-01-02 15:04:05"))
时间计算
Go语言中提供了Add函数用于时间的加减运算,例如:
t := time.Now()
d, _ := time.ParseDuration("24h")
t2 := t.Add(d)
fmt.Println(t2)
还可以使用Sub函数来计算时间之差,返回Duration类型,如下:
t1 := time.Date(2021, 10, 1, 11, 15, 0, 0, time.Local)
t2 := time.Date(2021, 10, 2, 8, 0, 0, 0, time.Local)
d := t2.Sub(t1)
fmt.Println(d.Hours())
总结
以上就是时间包time的基本用法介绍,大家可以通过重点理解常用常量、时间格式化、时间计算等几个方面,掌握该包的使用方法。