1 获取当前时间
package mainimport ("fmt""reflect""time")func main() {// 2022-01-23 11:55:39.365838 +0800 CST m=+0.000077818 time.Timefmt.Println(time.Now(), reflect.TypeOf(time.Now()))// 1642910139 int64fmt.Println(time.Now().Unix(), reflect.TypeOf(time.Now().Unix()))// 获取间隔时间start := time.Now()time.Sleep(time.Second * 2)// 2.001484829s time.Durationfmt.Println(time.Since(start), reflect.TypeOf(time.Since(start)))}
2 定时器
(1) Timer
package mainimport ("fmt""time")func main() {// 1.timer基本使用//timer1 := time.NewTimer(2 * time.Second)//t1 := time.Now()//fmt.Printf("t1:%v\n", t1)//t2 := <-timer1.C//fmt.Printf("t2:%v\n", t2)// 2.验证timer只能响应1次//timer2 := time.NewTimer(time.Second)//for {// <-timer2.C// fmt.Println("时间到")//}// 3.timer实现延时的功能//(1)//time.Sleep(time.Second)//(2)//timer3 := time.NewTimer(2 * time.Second)//<-timer3.C//fmt.Println("2秒到")//(3)//<-time.After(2*time.Second)//fmt.Println("2秒到")// 4.停止定时器//timer4 := time.NewTimer(2 * time.Second)//go func() {// <-timer4.C// fmt.Println("定时器执行了")//}()//b := timer4.Stop()//if b {// fmt.Println("timer4已经关闭")//}// 5.重置定时器timer5 := time.NewTimer(3 * time.Second)timer5.Reset(1 * time.Second)fmt.Println(time.Now())fmt.Println(<-timer5.C)for {}}
(2) Ticker
时间到了,多次执行
package mainimport ("fmt""time")func main() {// 1.获取ticker对象ticker := time.NewTicker(1 * time.Second)i := 0// 子协程go func() {for {i++fmt.Println(<-ticker.C)if i == 5 {//停止ticker.Stop()}}}()for {}}
