Time 常用函數(shù)
//獲取當(dāng)前時(shí)間,返回Time類型
func Now() Time
Unix(sec int64, nsec int64) Time
//根據(jù)秒數(shù)和納秒,返回Time類型
Date(year int, month Month, day, hour, min, sec, nsec int, loc *Location) Time
//設(shè)置年月日返回,Time類型
Since(t Time) Duration//返回與當(dāng)前時(shí)間的時(shí)間差
func (t Time) UTC() Time
func (t Time) Unix() int64
func (t Time) UnixNano() int64
常用的時(shí)間單位的換算
毫秒和納秒是兩的時(shí)間單位 1秒=1000毫秒 1毫秒=1000微秒 1微秒=1000納秒
fmt.Println(time.Now().Unix()) //獲取當(dāng)前時(shí)間戳 單位是秒
fmt.Println(time.Now().UnixNano()) //獲取當(dāng)前時(shí)間抽 單位是納秒
fmt.Println(time.Now().UnixNano() / 1e6) //將納秒轉(zhuǎn)換為毫秒
fmt.Println(time.Now().UnixNano() / 1e9) //將納秒轉(zhuǎn)換為秒
fmt.Println(time.Unix(time.Now().UnixNano()/1e9, 0)) //將毫秒轉(zhuǎn)換為 time 類型
Time常用方法
//時(shí)間類型比較,是否在Time之后
After(u Time) bool
//時(shí)間類型比較,是否在Time之前
Before(u Time) bool
//比較兩個(gè)時(shí)間是否相等
Equal(u Time) bool
//判斷時(shí)間是否為零值,如果sec和nsec兩個(gè)屬性都是0的話,則該時(shí)間類型為0
IsZero() bool
//返回年月日,三個(gè)參數(shù)
Date() (year int, month Month, day int)
//返回年份
Year() int
//返回月份.是Month類型
Month() Month
//返回多少號(hào)
Day() int
//返回星期幾,是Weekday類型
Weekday() Weekday
//返回年份,和該填是在這年的第幾周.
ISOWeek() (year, week int)
//返回小時(shí),分鐘,秒
Clock() (hour, min, sec int)
//返回小時(shí)
Hour() int
//返回分鐘
Minute() int
//返回秒數(shù)
Second() int
//返回納秒
Nanosecond() int
timer 計(jì)時(shí)器
// 使用AfterFunc
time.AfterFunc(5 * time.Minute, func() {
fmt.Printf("expired")
}
timer := time.NewTimer(5 * time.Minute)
<-timer.C
fmt.Printf("expired")
####time.Newtimer函數(shù)
初始化三小時(shí)30分鐘的定時(shí)器
t := time.Newtimer(3*time.Hour + 30*time.Minute)
重置定時(shí)器
func (t *Timer) Reset(d Duration) bool
停止定時(shí)器,如果返回false嘹屯,說明該定時(shí)器在之前已經(jīng)到期或者已經(jīng)被停止了,反之返回true脖岛。```
func (t *Timer) Stop() bool
func main() {
t := time.NewTimer(5 * time.Second)
//當(dāng)前時(shí)間
now := time.Now()
fmt.Printf("Now time : %v.\n", now)
expireTime := <-t.C
fmt.Printf("Expiration time: %v.\n", expireTime)
}
##ticker 斷續(xù)器