time包
time包提供了时间的显示和测量用的函数。日历的计算采用的是公历。
- 官方文档给的话哈,想看自己去看啊哈哈哈哈哈
go开发文档(中文版)
- 感觉跟java差不多哈,也有相同的时间类型,差不多的用法
now := time.Now() //获取当前时间
fmt.Printf("current time:%v\n", now)
year := now.Year() //年
month := now.Month() //月
day := now.Day() //日
hour := now.Hour() //小时
minute := now.Minute() //分钟
second := now.Second() //秒
- 还有时间戳类型
now := time.Now() //获取当前时间
timestamp1 := now.Unix() //时间戳
timestamp2 := now.UnixNano() //纳秒时间戳
将时间戳转化为时间
timeObj := time.Unix(timestamp1 , 0) //将时间戳转为时间格式
还可以对时间类型的一个操作:比如
- 求两个时间之间的差值:
func (t Time) Sub(u Time) Duration
- 判断两个时间是否相同
func (t Time) Equal(u Time) bool
- 如果t代表的时间点在u之前,返回真;否则返回假。
func (t Time) Before(u Time) bool
- 如果t代表的时间点在u之后,返回真;否则返回假。
func (t Time) After(u Time) bool
还有定时器哦
ticker := time.Tick(time.Second) //定义一个1秒间隔的定时器
for i := range ticker {
fmt.Println(i)//每秒都会执行的任务
}
这些感觉和平常的没差别,但是有意思的来啦
时间格式化
- 像我们平常的时间格式一般都是 yyyy-MM-dd HH:mm:ss 这种格式的
- 而go语言确实 2006-01-02 03:04:05
是的,你没有看错,还可以精确到毫秒级
- 格式为 2006-01-02 15:04:05.000
- 是的,你没有看错,那是格式,啊哈哈哈哈哈
- 1 2 3 4 5 是 12小时制
- 带有15是 24小时制哦