时间类型 time.Time
const (
Nanosecond Duration = 1
Microsecond = 1000 * Nanosecond
Millisecond = 1000 * Microsecond
Second = 1000 * Millisecond
Minute = 60 * Second
Hour = 60 * Minute
)
time.Now() 当前时间
year := now.Year() //年
month := now.Month() //月
day := now.Day() //日
hour := now.Hour() //小时
minute := now.Minute() //分钟
second := now.Second() //秒
now:=time.Now().Unix() 时间戳
now:=time.Now().UnixNano() 纳秒时间戳
later := now.Add(time.Hour*1) 添加一小时
later := now.AddDate(-1, 0,0) 添加日期 年 月 日
now := time.Now()
year, month, day := now.Date() 返回年月日 2020 October 11
now.Clock() 时分秒
now.YearDay() 一年中第几天
now.Weekday() 星期几 sunday
fmt.Println(now.Format("2006-01-02 15:04:05"))//格式化时间
loc, _ := time.LoadLocation("Asia/Shanghai") 加载时区
timeObj, _ := time.ParseInLocation("2006/01/02 15:04:05", "2019/08/04 14:15:20", loc) 转换成时间类型
- 定时器
//执行一次
timer := time.NewTimer(1*time.Second)//5s以后
<-timer.C
fmt.Println(time.Now().Format("2006-01-02 15:04:05"))
timer.Stop() //停止
timer.Reset(1*time.Second) //重置
<-time.After(2 * time.Second)//延迟2秒
fmt.Println(time.Now().Format("2006-01-02 15:04:05"))
c := make(chan int)
time.AfterFunc(1*time.Second, func() {//延迟一秒并执行函数
fmt.Println(time.Now().Format("2006-01-02 15:04:05"))
c<-1
})
<-c
//每两秒执行一次
var ch chan int
ticker := time.NewTicker(2*time.Second)
go func() {
for range ticker.C {
fmt.Println(time.Now().Format("2006-01-02 15:04:05"))
}
ch <- 1
}()
<-ch
//每5秒执行一次
c := time.Tick(5 * time.Second)
for {
<- c
go func() {
fmt.Println(time.Now().Format("2006-01-02 15:04:05"))
}()
}
//重复执行放在里面
var wg sync.WaitGroup//保证主 goroutine 不退出
wg.Add(1)
//具体执行
wg.Wait()
作者:Yoby 创建时间:2020-09-12 00:03
更新时间:2024-12-05 13:26
更新时间:2024-12-05 13:26