参考官方文档 (package time)
https://studygolang.com/pkgdoc
前言:
time实际上是一个结构体
1、获取当前时间
now := time.Now()
fmt.Printf("now=%v \nnow time type=%T", now, now)
结果
2、分别获取 年月日、时分秒
fmt.Printf("年=%v\n",now.Year())
fmt.Printf("月=%v\n",now.Month())
fmt.Printf("月=%v\n",int(now.Month())) //转换成数字月份
fmt.Printf("日=%v\n",now.Day())
fmt.Printf("时=%v\n",now.Hour())
fmt.Printf("分=%v\n",now.Minute())
fmt.Printf("秒=%v\n",now.Second())
运行结果:
3、格式化日期和时间
//格式化日期和时间
fmt.Printf("当前年月日 %02d-%02d-%02d %02d:%02d:%02d \n",now.Year(),now.Month(),
now.Day(),now.Hour(),now.Minute(),now.Second()) //也可以不要02
输出结果
4、时间的常量
const (
Nanosecond Duration = 1
Microsecond = 1000 * Nanosecond
Millisecond = 1000 * Microsecond
Second = 1000 * Millisecond
Minute = 60 * Second
Hour = 60 * Minute
)
获取指定时间
例如获取100毫秒
100 * time.Millisecond
5、休眠
案例
for i :=0;i<=100;i++{
fmt.Println(i)
//休眠
//time.Sleep(time.Second) //1s输出
time.Sleep(time.Millisecond *100) //0.1s输出
}
6、获取当前unix时间戳和unixnano时间戳
作用是可以获取随机数字
Unix时间戳:
Unixnano时间戳:
案例演示
fmt.Printf("unix时间戳=%v,\nunixnano时间戳=%v",now.Unix(),now.UnixNano()) //unix 单位s unixnano 单位ns
运行结果
7、练习
(1)编写一个函数来计算程序所需时间
package main
import (
"fmt"
"strconv"
"time"
)
func test(){
str := ""
for i:=0;i<100000;i++{
str +="hello"+strconv.Itoa(i)
}
fmt.Print(str,"\n")
}
func main() {
//在执行前先获取当前时间戳
start :=time.Now().Unix()
test()
end := time.Now().Unix()
fmt.Printf("所需时间为%vs\n",end-start)
}
运行结果