go time 包的使用

发布时间 2023-04-05 21:57:36作者: yangphp

定义时间模板:

const TimeTem = "2006-01-02 15:04:05" 

//Format里必须用“2006-01-02 15:04:05” 表示24小时时间制显示时间    

//Format里必须用“2006-01-02 03:04:05”  表示12小时时间制显示时间

 

//打印当前时间

fmt.Println(time.Now())   //2023-02-17 20:35:17.240248 +0800 CST m=+0.007976401

 

//格式化时间显示 ,这个比较常用,输出当前格式化的实际

fmt.Println(time.Now().Format(TimeTem))  //输出 2023-02-17 20:38:37

 

//获取时间戳10位数的时间戳,精确到秒

fmt.Println(time.Now().Unix())  //秒 输出 1679494384

fmt.Println(time.Now().UnixMilli()) //毫秒 输出1679494384689

fmt.Println(time.Now().UnixMicro()) //微秒 输出1679494384689722

fmt.Println(time.Now().UnixNano()) //纳秒 输出 1679494384689722500

fmt.Println(time.Now().Nanosecond()) //输出 689722500  纳秒,只输出秒后面的部分

 

 

//获取年,月,日,时,分,秒  

t := time.Now()

fmt.Println(t.Year(), t.Month(), t.Day(), t.Hour(), t.Minute(), t.Second()) 

//输出 2023 February 17 20 44 22

 

 

//时间戳转换日期 输出 2023-02-17 20:44:22

st := 1676637862

fmt.Println(time.Unix(int64(st), 0).Format(TimeTem))

 

//时间转换为时间戳

d := "2023-02-17 20:48:13"

t, _ = time.ParseInLocation(TimeTem, d, time.Local)

fmt.Println(t.Unix())

 

//获取1小时后的时间  输出:2023-02-17 21:57:31

fmt.Println(time.Now().Add(1 * time.Hour).Format(TimeTem))

 

//获取30分钟后的时间 输出:2023-02-17 21:27:31

fmt.Println(time.Now().Add(30 * time.Minute).Format(TimeTem))

 

 

定时器: 2秒执行一次

tick := time.NewTicker(2 * time.Second)

n := 5

for _ = range tick.C {

fmt.Println("hello tick", n)

n--

if n < 0 {

tick.Stop()  //停止定时器

break    //跳出for

}

}

 

定时器:休息2秒执行一次

n := 5

for {

time.Sleep(2 * time.Second)

fmt.Println("hello ", n)

n--

if n <= 0 {

break

}

}

 

完结