go time 包的使用
定义时间模板:
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
}
}
完结
但行好事,莫问前程!
本文来自博客园,作者:yangphp,转载请注明原文链接:https://www.cnblogs.com/ypeih/p/17291050.html