time包提供了时间的显示和测量用的函数。日历的计算采用的是公历。
package main
import (
"fmt"
"time"
)
//时间
func main() {
now := time.Now()
fmt.Println(now)
fmt.Println(now.Date())
fmt.Println(now.Year())
fmt.Println(now.Month())
fmt.Println(now.Day())
fmt.Println(now.Hour())
fmt.Println(now.Minute())
fmt.Println(now.Second())
//时间戳
fmt.Println(now.Unix())
fmt.Println(now.UnixNano())
// time.Unix()
ret := time.Unix(2312, 0)
fmt.Println(ret)
fmt.Println(ret.Year())
fmt.Println(ret.Day())
//时间间隔
fmt.Println(time.Second)
// now+1小时
fmt.Println(now.Add(24 * time.Hour))
//Sub两个时间相减
nextYear, err := time.Parse("2006-01-02 15:04:05 ", "2022-01-20 00:18:00")
if err != nil {
fmt.Printf("parse time failed ,err:%v\n", err)
return
}
// now = now.UTC()
// nextYear = nextYear.UTC()
d := now.Sub(nextYear)
d1 := nextYear.Sub(now)
fmt.Println(d)
fmt.Println(d1)
//定时器
timer := time.Tick(time.Second)
for t := range timer {
fmt.Println(t)
}
//格式化时间 把语言中事件对象转换成字符串类型的时间
//2022-01-19
fmt.Println(now.Format("2006-01-02"))
//2022-01-19 11:55:02
fmt.Println(now.Format("2006-01-02 15:02:05"))
//2022-01-19 11:55:02 AM
fmt.Println(now.Format("2006-01-02 03:04:05 PM"))
//2022-01-19 11:55:02.342
fmt.Println(now.Format("2006-01-02 15:02:05.000"))
//按照对应的格式解析字符串类型的时间
timeObj, err := time.Parse("2006-01-02", "2022-01-19")
if err != nil {
fmt.Printf("parse time failed ,err:%v\n", err)
return
}
fmt.Println(timeObj)
fmt.Println(timeObj.Unix())
//Sleep
n := 5 //int
fmt.Println("开始sleep")
time.Sleep(time.Duration(n) * time.Second)
fmt.Println("5秒钟过去")
// time.Sleep(5 * time.Second)
}