gitee.com/zhongguo168a/gocodes@v0.0.0-20230609140523-e1828349603f/myx/slowtime/time.go (about) 1 package slowtime 2 3 import ( 4 "time" 5 ) 6 7 var timeSpace = int(time.Second) 8 9 var ( 10 now time.Time 11 ) 12 13 func init() { 14 go timeProc() 15 } 16 17 func Now() time.Time { 18 return now 19 } 20 21 // 按照timeSpace更新时间,可减少运行time.Now()的次数,用于对时间不敏感的场景 22 func timeProc() { 23 now = time.Now() 24 offset := now.UnixNano() - now.Unix()*int64(time.Second) 25 time.Sleep(time.Duration(offset)) // 整点更新 26 27 for { 28 now = time.Now() 29 dif := now.UnixNano() - now.Unix()*int64(time.Second) 30 time.Sleep(time.Duration(timeSpace - int(dif))) 31 } 32 }