换算
//获取当前时间,返回Time类型func Now() TimeUnix(sec int64, nsec int64) Time//根据秒数和纳秒,返回Time类型Date(year int, month Month, day, hour, min, sec, nsec int, loc *Location) Time//设置年月日返回,Time类型Since(t Time) Duration//返回与当前时间的时间差func (t Time) UTC() Timefunc (t Time) Unix() int64func (t Time) UnixNano() int64
毫秒和纳秒是两的时间单位 1秒=1000毫秒 1毫秒=1000微秒 1微秒=1000纳秒
fmt.Println(time.Now().Unix()) //获取当前时间戳 单位是秒fmt.Println(time.Now().UnixNano()) //获取当前时间抽 单位是纳秒fmt.Println(time.Now().UnixNano() / 1e6) //将纳秒转换为毫秒fmt.Println(time.Now().UnixNano() / 1e9) //将纳秒转换为秒fmt.Println(time.Unix(time.Now().UnixNano()/1e9, 0)) //将毫秒转换为 time 类型
package mainimport ("fmt""time")func main() {t := time.Now().UnixNano()fmt.Println(t)fmt.Println(t/ 1e6)fmt.Println(t/ 1e9)t = time.Now().Unix()fmt.Println(t)}
打印结果
1579428203323919052157942820332315794282031579428203
常用方法
//时间类型比较,是否在Time之后After(u Time) bool//时间类型比较,是否在Time之前Before(u Time) bool//比较两个时间是否相等Equal(u Time) bool//判断时间是否为零值,如果sec和nsec两个属性都是0的话,则该时间类型为0IsZero() bool//返回年月日,三个参数Date() (year int, month Month, day int)//返回年份Year() int//返回月份.是Month类型Month() Month//返回多少号Day() int//返回星期几,是Weekday类型Weekday() Weekday//返回年份,和该填是在这年的第几周.ISOWeek() (year, week int)//返回小时,分钟,秒Clock() (hour, min, sec int)//返回小时Hour() int//返回分钟Minute() int//返回秒数Second() int//返回纳秒Nanosecond() int
计时器
// 使用AfterFunctime.AfterFunc(5 * time.Minute, func() {fmt.Printf("expired")}timer := time.NewTimer(5 * time.Minute)<-timer.Cfmt.Printf("expired")
Newtimer
初始化三小时30分钟的定时器
t := time.Newtimer(3*time.Hour + 30*time.Minute)
重置定时器
func (t *Timer) Reset(d Duration) bool
停止定时器,如果返回false,说明该定时器在之前已经到期或者已经被停止了,反之返回true。
func (t *Timer) Stop() bool
计算函数执行时间
package mainimport ("fmt""time")func test( s time.Time) {sum := 0for i := 0; i < 100000000; i++ {sum++}elapsed := time.Since(s)fmt.Println("该函数执行完成耗时:", elapsed)}func main() {test(time.Now())}
