Goland之Time包
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))