time 时间,时间戳的用法以及定时器
1 2 3 4 5 | import ( "fmt" "testing" "time" ) |
时间的创建 和 获取
1 2 3 4 5 6 7 8 9 | var timeObj = time.Now() fmt.Println(timeObj) //2020-07-02 21:53:54.2141593 +0800 CST m=+0.006999401 year := timeObj.Year() month := timeObj.Month() day := timeObj.Day() hour := timeObj.Hour() min := timeObj.Minute() sec := timeObj.Second() fmt.Printf("%d-%02d-%02d %02d:%02d:%02d", year, month, day, hour, min, sec) //2020-07-02 21:53:54 |
时间的格式化 Format()
2006 代表年 01 代表月 02 代表日 03 代表12小时制/15代表24小时制 04 代表分 05 代表秒
1 2 3 4 5 | timeObj.Format("2006-01-02 03:04:05") //12小时制 fmt.Println(timeObj.Format("2006-01-02 03:04:05")) //2020-07-02 09:58:20 //24小时制 fmt.Println(timeObj.Format("2006-01-02 15:04:05")) //2020-07-02 21:58:20 |
获取当前时间戳
1 2 | unixtime := timeObj.Unix() fmt.Println(unixtime) //1593698571(秒) |
获取纳秒时间戳
1 2 | unixNatime := timeObj.UnixNano() fmt.Println(unixNatime) //1593698665603918300 |
时间戳转时间对象
1 2 3 4 5 | var timeObj = time.Now() unixtime := timeObj.Unix() timeObject := time.Unix(int64(unixtime), 0) //时间戳转时间对象 var strTime = timeObject.Format("2006/01/01 15:04:05") fmt.Println(strTime) //2020/07/07 22:16:25 |
日期时间字符串转时间戳
1 2 3 4 5 6 | var str = "2020-11-22 11:18:56" var tmp = "2006-01-02 15:04:05" //str和tmp的格式要保持一致 timeObj, _ = time.ParseInLocation(tmp, str, time.Local) unixtime = timeObj.Unix() fmt.Println(unixtime) //1606015136 |
时间的常量
时间操作方法 Add 增加时间
1 2 | timeObj = time.Now() timeObj = timeObj.Add(time.Second) //增加1秒 |
定时器
time.NewTicker()
1 2 3 4 5 6 7 8 9 10 | ticker := time.NewTicker(time.Second) //每隔1分钟 执行一次程序 var n = 0 for t := range ticker.C { if n > 5 { ticker.Stop()//终止定时器继续执行 break } fmt.Println(t) n++ } |
休眠方法 time.sleep()
1 | time.Sleep(time.Second) //可以实现定时器功能 |