package main
import (
"fmt"
"time"
)
func main() {
t := time.Now().Unix() //秒时间戳
fmt.Println("秒时间戳:", t)
t = time.Now().UnixMilli() //毫秒
fmt.Println("毫秒时间戳: ", t)
t = time.Now().UnixNano() //纳秒
fmt.Println("纳秒: ", t)
//格式化显示时间
fmt.Println(time.Now().Format("2006-01-02 15:04:05"))
//定时器
time.AfterFunc(time.Second, func() {
fmt.Println(time.Now().Format("2006-01-02 15:04:05"))
})
//定时器如何触发,go语言中采用的是堆结构,而且是四叉树的堆结构
//定时触发器 每一秒中创建一个Ticker,ticker的chan中有数据,就会被select轮询到
ticker := time.NewTicker(time.Second) //返回一个Ticker结构体,Ticker结构体包含一个chan C
go func() {
for {
select {
case <-ticker.C: //管道中有值时触发
fmt.Println(time.Now().Format("2006-01-02 15:04:05"))
}
}
}()
//协程休眠3秒
time.Sleep(10 * time.Second)
}
golang中定时器ticker
最新推荐文章于 2023-09-14 17:24:15 发布