Go 语言中时间类型有两种:
time.Time:表示时间的类型,常见的有两种方式:
time.Now():获取当前的时间
time.Date():根据指定的年、月、日、时、分、秒、纳秒等创建时间
time.Unix
函数用于根据Unix时间戳(自1970年1月1日以来的秒数)和纳秒数创建一个time.Time
对象。
t := time.Unix(1609459200, 0) // 使用第二个参数传递纳秒值,这里为0
fmt.Println("Time:", t)
time.Duration:表示两个时间点之间经过的时间,以纳秒为单位
b := time.Date(2028, time.February, 20, 23, 59, 59, 0, time.UTC)
c := time.Date(2028, time.February, 20, 23, 59, 59, 0, time.Local)
d := c.Sub(b) //获取本地时间和UTC时间的时间间隔
fmt.Println(d)
fmt.Println(d.Seconds())
d2 := (time.Second*30 + time.Minute*5) //获取5分钟30秒的时间间隔
fmt.Println(d2)
fmt.Println(d2.Seconds())
时间操作
日期格式化
time.Time
类型有一个Format
方法,你可以使用这个方法来格式化日期和时间。
Parse
函数将可以将日期字符串其解析为time.Time
对象:
常用的格式化参数
-
2006
表示年 -
01
表示月 -
02
表示日 -
15
表示小时(24小时制) -
03
表示小时(12小时制) -
PM
表示上午/下午(与小时一起使用) -
04
表示分钟 -
05
表示秒 -
Mon
表示周几份的缩写(例如Mon) -
Monday
表示完整的月份名称(例如Monday
) -
Jan
表示月份的缩写(例如Jan) -
January
表示完整的月份名称(例如January) -
-0700 表示时区
这个转换格式参数不太容易被接受。go给我们提供了几个常量。定义了基本的转换格式
Parse
函数,不带市区时候,会把字符串转换成 UTC 也就是格林尼治时间。如果需要带时区信息。 可以转换字符串加上时区信息。或者用 ParseInLocation