Golang 学习笔记 Time库

# 时间

var t1 Time = time.Now() # 获取当前时间
var t2 Time = time.Unix(981144306, 0) # 获取时间从时间戳
var t3 Time = time.Parse("2016-01-02 15:04:05", "2001-02-03 04:05:06") # 获取时间从时间格式
var t4 Time = time.ParseInLocation("2006-01-02 15:04:05", "2001-02-03 04:05:06", time.Local) # 获取时间从时间格式和时区
var t5 Time = time.Date(2001, 2, 3, 4, 5, 6, 0, time.Local) # 获取时间从自定义

# 格式化

var s1 string = time.Now().Format("2006-01-02 15:04:05") # 获取Datetime格式
var s2 string = time.Now().Format(time.RFC3339) # 获取RFC3339格式

# 时间戳

var u1 int64 = time.Now().Unix() # 获取秒级时间戳
var u2 int64 = time.Now().UnixNano() # 获取毫秒级时间戳

# 时区

var local, err = time.LoadLocation("") # UTC时区
var local, err = time.LoadLocation("Local") # 本地时区(CST)

# 休眠

time.Sleep(time.Duration(1)*time.Second) # 休眠一秒

# 比较

var b1 bool = time.Now().Before(time.Now()) # 之前
var b2 bool = time.Now().After(time.Now()) # 之后
var b3 bool = time.Now().Equal(time.Now()) # 相等

# 运算

var t Time = now.Add(time.Duration(1)*time.Second) # 加减

# 定时器

var tick = time.Tick(time.Duration(1) * time.Minute)
for t := range tick {}

var ticker = time.NewTicker(time.Duration(1) * time.Minute)
for t := range ticker.C {
  ticker.Stop()
}

var timer = time.NewTimer(time.Duration(1) * time.Second)
for t := range timer.C {
  timer.Reset(time.Duration(1) * time.Second)
  timer.Stop()
}

# 常用方法

var year int, month Month, day int = time.Now().Date()
var hour, min, sec int = time.Now().Clock()
var year int = time.Now().Year()
var month Month = time.Now().Month()
var day int = time.Now().Day()
var hour int = time.Now().Hour()
var minute int = time.Now().Minute()
var second int = time.Now().Second()
var nanosecond int = time.Now().Nanosecond()
var yearday int = time.Now().YearDay()
var weekday Weekday = time.Now().Weekday()
var year int, week int = time.Now().ISOWeek()