Time


Time包参数说明 :


  now := time.Now()  //Now返回当前本地时间 
  fmt.println(now) // 2022-12-31 18:26:28.695199 +0800 CST m=+0.001064201
  now.Year()// 2022 (年)
  now.Month() // December (月)
  now.Day() // 31 (日)
  now.Date() // 2022 December 31  (返回年月日)
  now.Hour() // 时
  now.Minute() // 分
  now.Second() // 秒`
  
  now.Unix() // 秒级时间戳
  now.UnixNano() // 纳秒级时间戳

  time.Unix(now.Unix(), 0) // 时间戳转换为时间 第二个参数表示精度 返回一个Time类型的时间 2022-12-31 18:26:35 +0800 CST
  ret := time.Unix(now.Unix(), 0)
  ret.Year() // 拿到时间中的年
  ret.Month() // 拿到时间中的月
  ret.Day() // 拿到时间中的日

  now.Add(24 * time.Hour) // 现在的时间加24小时

  // 使用time.Tick(时间间隔)来设置定时器,定时器的本质上是一个通道(channel)。
  timer := time.Tick(time.Hour)
  for t := range timer {
    fmt.Println(t)
  }
  
  // 时间格式化
  //time.Format函数能够将一个时间对象格式化输出为指定布局的文本表示形式,
  //需要注意的是 Go 语言中时间格式化的布局不是常见的Y-m-d H:M:S,
  //而是使用 2006-01-02 15:04:05.000(记忆口诀为2006 1 2 3 4 5)。
  //其中:
  // 2006:年(Y)
  // 01:月(m)
  // 02:日(d)
  // 15:时(H)
  // 04:分(M)
  // 05:秒(S)
  now.Format("2006-01-02 15:04:05") 代表当前时间
  now.Format("2006-01-02 03:04:05") 代表上午时间
  now.Format("2006-01-02 03:04:05.000") 毫秒精度

  // Parse解析一个格式化的时间字符串并返回它代表的时间。layout定义了参考时间:
  func Parse(layout, value string) (Time, error)
  
  // 求两个时间的差 
  func (t Time) Sub(u Time) Duration
  
  // 睡眠
  time.Sleep(5 * time.Second)
  n := 4
  time.Sleep(time.Duration(n))

标签: none

添加新评论