zoukankan      html  css  js  c++  java
  • Go语言编写规范之time包

    1.time.Time和time.Duration

    time.Time可以理解为时间单位,其中包含了一些对时间的处理方法,time.Now()返回就是time.Time类型

    在处理时间的瞬时时使用time.Time,在比较、添加或减去时间时使用time.Time中的方法。

    Bad Good
    func isActive(now, start, stop int) bool {
      return start <= now && now < stop
    }
    func isActive(now, start, stop time.Time) bool {
      return (start.Before(now) || start.Equal(now)) && now.Before(stop)
    }

    time.Duration表示时间段,处理时间段时可以用这个方法

    Bad Good
    func poll(delay int) {
      for {
        // ...
        time.Sleep(time.Duration(delay) * time.Millisecond)
      }
    }
    poll(10) // 是几秒钟还是几毫秒?
    func poll(delay time.Duration) {
      for {
        // ...
        time.Sleep(delay)
      }
    }
    poll(10*time.Second)

     

     

     

    2.获取某些特定时间点的时间

    获取将来或者过去某个时间段的时间

    tomorrow := time.Now().AddDate(0 /* years */, 0, /* months */, 1 /* days */)
    yesterday := time.Now().Add(-24 * time.Hour)

    获取0点时间

    timeStr := time.Now().Format("2006-01-02")
    t, _ := time.ParseInLocation("2006-01-02", timeStr, time.Local)

    3.时间的格式化

    timeStr := time.Now().Format("2006-01-02")
    timeStr := time.Now().Format("2006-01-02 15:04:05")

    4.时区选择

    func get_date_today_china() (date string, err error) {
        var cstZone = time.FixedZone("CST", 60*60*8)//东八区
        date = time.Now().In(cstZone).Format("2006-01-02")
        return
    }
  • 相关阅读:
    本学期的学习计划
    snmp 学习记录
    解锁树莓派root账号
    树莓派通过阿里云内网穿透,搭建下载机
    golang Ordered Map
    go 切片slice奇怪的地方
    学习scons总结
    go语言学习小结
    学习git版本管理工具
    轻松记账工程冲刺第二阶段10
  • 原文地址:https://www.cnblogs.com/peterleee/p/13890276.html
Copyright © 2011-2022 走看看