去语言中时间函数及定时器的使用

  

去语言中时间函数及定时器,休眠等功能的实现和使用,代码如下,有需要的小伙伴直接拿去

  
 <代码>包主要
  
  导入(
  “时间”
  “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(“股票…”)
  }
  }
  
  }
  

去语言中时间函数及定时器的使用