一、获取当前时间
package main
import (
"fmt"
"time"
)
func main () {
//获取当前时间
now := time.Now()
fmt.Printf("now=%v now type=%T", now, now)
}
输出
PS D:\goproject\src\go_code\chaptor6hanshu\demo2> go run .\main.go
now=2022-12-11 14:17:39.6396781 +0800 CST m=+0.019054301 now type=time.Time
返回的是结构体
二、获取年月日,时分秒
package main
import (
"fmt"
"time"
)
func main () {
//获取当前时间
now := time.Now()
//获取年月日,时分秒
fmt.Printf("年=%v\n", now.Year())
fmt.Printf("月=%v\n", 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())
}
输出
PS D:\goproject\src\go_code\chaptor6hanshu\demo2> go run .\main.go
年=2022
月=December
日=11
时=14
分=24
秒=10
三、格式化日期时间
package main
import (
"fmt"
"time"
)
func main () {
//获取当前时间
now := time.Now()
//格式化日期时间
fmt.Printf("当前年月日 %d-%d-%d %d:%d:%d \n",now.Year(), now.Month(), now.Day(),
now.Hour(), now.Minute(), now.Second())
// //返回字符串
datestr := fmt.Sprintf("当前年月日 %d-%d-%d %d:%d:%d \n",now.Year(), now.Month(), now.Day(),
now.Hour(), now.Minute(), now.Second())
fmt.Printf("datestr=%v", datestr)
//Format格式化
fmt.Printf(now.Format("2006/01/02 15:04:05"))//2006/01/02 15:04:05时间不能改
fmt.Println()
fmt.Printf(now.Format("2006/01/02"))
fmt.Println()
fmt.Printf(now.Format("15:04:05"))
fmt.Println()
}
输出
PS D:\goproject\src\go_code\chaptor6hanshu\demo2> go run .\main.go
当前年月日 2022-12-11 14:42:36
datestr=当前年月日 2022-12-11 14:42:36
2022/12/11 14:42:36
2022/12/11
14:42:36
四、时间常量结合sleep使用
package main
import (
"fmt"
"time"
)
func main () {
//每隔1s打印一个数字,打印10退出
//每隔0.1s打印一个数字,10退出
i := 0
for {
i++
fmt.Println(i)
//休眠
//time.Sleep(time.Second) 1s
time.Sleep(time.Millisecond + 100)
if i == 10{
break
}
}
}
输出
PS D:\goproject\src\go_code\chaptor6hanshu\demo2> go run .\main.go
1
2
3
4
5
6
7
8
9
10
五、获取时间戳
package main
import (
"fmt"
"time"
)
func main () {
//获取当前时间
now := time.Now()
//Unix和UnixNano的使用
fmt.Printf("Unix时间戳=%v\nUnixNano时间戳=%v", now.Unix(), now.UnixNano())
}
输出
PS D:\goproject\src\go_code\chaptor6hanshu\demo2> go run .\main.go
Unix时间戳=1670741944
UnixNano时间戳=1670741944627306500
六、计算时间差
package main
import (
"fmt"
"time"
"strconv"
)
func time1() {
str := ""
for i :=0; i < 100000; i++{
str +="hello" + strconv.Itoa(i)
}
}
func main() {
//在执行前获取时间戳
startime := time.Now().Unix()
time1()
endtime := time.Now().Unix()
fmt.Printf("执行time1()耗费的时间时%v秒\n", endtime - startime)
}
输出
PS D:\goproject\src\go_code\chaptor6hanshu\practice1> go run .\main.go
执行time1()耗费的时间时10秒

9704

被折叠的 条评论
为什么被折叠?



