去语言中时间函数及定时器,休眠等功能的实现和使用,代码如下,有需要的小伙伴直接拿去
<代码>包主要 导入( “时间” “fmt” ) 函数main () {//设置时区,如果的名字是“”或“UTC返回UTC;//如果的名字是“本地”,返回当地;//否则名称应该是IANA时区数据库里有记录的地点名(该数据库记录了地点和对应的时区),如“美国/New_York”。 位置,犯错:=time.LoadLocation(“美国/New_York”) 如果犯错!=nil { 恐慌(err) }//创建时间,依次是:年,月,日,时,分,秒,纳秒(1秒=1000毫秒=1000000微秒=1000000000纳秒),时区 t1:=时间。日期(12 2018、7、7日,12日,12日,500000000,位置) fmt.Println (t1)//2018-07-07 12:12:12.5 -0400美国//将字符串转成时间,时间格式字符串:“2006-01-02 15:04:05”(语言规定) t2,犯错:=时间。解析(“2006-01-02 15:04:05”、“2018-07-07 09:10:05”) fmt.Println (t2)//2018-07-07 09:10:05 + 0000 UTC//将字符串转成时间,需要传入时区 t3,犯错:=arseInLocation (“20060102”、“20180707”time.UTC) fmt.Println (t3)//2018-07-07就是+ 0000 UTC//获取当前时间 t4:=time.Now () fmt.Println (t4)//2018-05-23 20:50:08.9873106 + 0800 CST m=0.012895501 +//格式化输出 fmt.Println (t4。格式(“2006-01-02 15:04:05”))//2018-05-23 20:50:08 fmt.Println (t4。格式(“02/01/2006 15:04:05”))//23/05/2018 20:50:08 fmt.Println (t4.Format (“2006-01-02”))//2018-05-23 fmt.Println (t4.Format (“15:04:05”))//20:50:08 fmt.Println (t4。格式(2006年1月2日))//5月23日,2018年//获取世界统一时间 t5:=t4.UTC () fmt.Println (t5)//2018-05-23 12:50:08.9873106 + 0000 UTC//获取本地时间 t6:=t5.Local () fmt.Println (t6)//2018-05-23 20:50:08.9873106 + 0800 CST//获取指定时区的时间 t7:=t6.In(位置) fmt.Println (t7)//2018-05-23 08:50:08.9873106 -0400美国//获取Unix时间戳,单位:秒,即从时间点1970-01-01就是UTC到时间点t所经过的时间 时间戳:=t7.Unix () fmt.Println(时间戳)//1527080185//获取Unix时间戳,单位:纳秒,常用于作为兰德的随机数种子 时间戳=t7.UnixNano () fmt.Println(时间戳)//1527080185738346000//判断两个时间是否相等,会判断时区等信息,不同时区也可以用此进行比较 fmt.Println (t7.Equal (t6))//真实的//判断t4是否在t3之前 fmt.Println (t4.Before (t3))//真实的//判断t4是否在t3之后 fmt.Println (t4.After (t3))//假的//返回时间的年,月,日 y、m, d:=t4.Date () fmt。Printf("年:% d,月:% d日:% d \ n”, y, m, d)//年:2018年,月:5日:23//返回时间的时、分、秒 h,分钟,年代:=t4.Clock () fmt。Printf("时:% d,分:% d,秒:% d \ n”, h,分钟,s)//时:21日分:5秒:41//单独获取年,月,日,时,分,秒,星期 fmt。Printf("年:% d,月:% d日:% d时:% d,分:% d,秒:% d星期:% d \ n”, t4.Year (), t4.Month (), t4.Day (), t4.Hour (), t4.Minute (), t4.Second (), t4.Weekday())//年:2018年,月:5日:23日时:21日分:9秒:56岁的星期:3 t8,犯错:==馕?“2006-01-02 15:04:05”、“2018-01-01”就是)//增加100秒,time.Duration是以纳秒为单位,时间。第二个=1000 000 000。参数可以为负数就是减少 t9:=t8.Add (time.Duration (100) * time.Second) fmt.Println (t9)//2018-01-01 00:01:40 + 0000 UTC//增加或减少的年,月,日 t10:=t8。AddDate (1, 1, 1) fmt.Println (t10)//2019-01-31就是+ 0000 UTC//计算两个时间之间的差 大调的:=t8.Sub (t9) fmt.Println (dur.Seconds ())//-100//将时间戳转成时间对象,第一个参数为秒,第二个参数为纳秒,如果传秒数,则纳秒传入0;如果传入纳秒,则秒传入0 t11:=时间。Unix(0,时间戳); fmt.Println (t11。格式(“2006-01-02 15:04:05”))//=======================================================================定时器,休眠等//定时器,单次时间事件,指定时间后向通道C发送当时时间 计时器:=time.NewTimer (time.Duration (1) * time.Second) fmt.Println (& lt; - timer.C)//也可配合选择使用 计时器=time.NewTimer (time.Duration (1) * time.Second) 选择{ & lt;计时器。C: fmt.Println(“执行…”) }//用计时器实现定时器 计时器=time.NewTimer (time.Duration (1) * time.Second) 为{ 选择{ & lt;计时器。C: fmt.Println(“定时器定时器…”) timer.Reset (time.Duration (1) * time.Second)//重新开始计时 } }//开启一个新协程,在指定时间后执行给定函数,所以测试时,需要将主协程休眠几秒才能看到执行结果 time.AfterFunc (time.Duration (1) *。第二,func () { fmt.Println (“AfterFunc…”) })//当前协程休眠指定时间 时间。睡眠(2 * time.Second)//指定时间后向通道C发送当时时间 tt:=& lt;还(time.Duration (1) * time.Second) fmt.Println (tt)//股票保管一个通道,并每隔一段时间向其传递“滴答”。 股票:=time.NewTicker (time.Duration (1) * time.Second)//用股票实现定时器 为{ 选择{ 案例& lt; -ticker.C: fmt.Println(“股票…”) } } }去语言中时间函数及定时器的使用