time
import "time"
时间基础单位
time 中使用一个函数表示时间单位
- time.Nanosecond : 纳秒
- time.Millisecond : 毫秒
- time.Second : 秒
- time.Minute :分钟
- time.Hour : 小时
package main
import "fmt"
import "time"
func main(){
fmt.Println(time.Nanosecond)
fmt.Println(time.Millisecond)
fmt.Println(time.Second)
fmt.Println(time.Minute)
fmt.Println(time.Hour)
}
go run
1ns
1ms
1s
1m0s
1h0m0s
时间转换
对于一个已知的时间 T,可以转换其他单位的时间
可以转换的时间有:
- T.Nanoseconds() :纳秒
- T.Microseconds() : 微秒
- T.Milliseconds() : 毫秒
- T.Seconds() : 秒
- T.Minutes() :分钟
- T.Hours() : 小时
package main
import "fmt"
import "time"
func main(){
T := 12345 * time.Second
fmt.Println(T.Nanoseconds())
fmt.Println(T.Microseconds())
fmt.Println(T.Milliseconds())
fmt.Println(T.Seconds())
fmt.Println(T.Minutes())
fmt.Println(T.Hours())
}
go run
12345000000000
12345000000
12345000
12345
205.75
3.4291666666666667
获取当前时间
package main
import "fmt"
import "time"
func main(){
T := time.Now()
fmt.Println(T)
fmt.Println(T.Year())
fmt.Println(T.Month())
fmt.Println(T.Day())
fmt.Println(T.Hour())
fmt.Println(T.Minute())
fmt.Println(T.Second())
fmt.Println(T.Nanosecond())
fmt.Println(T.Weekday())
}
go run
2021-04-28 15:01:47.082562709 +0800 CST m=+0.000034421
2021
April
28
15
1
47
82562709
Wednesday
定时器
首先瞬间打印出 tchan ,但是他是一个 channel 信息,说明 time.After
的过程是不阻塞的
然后等待3S,打印当前时间信息。
这种方式可以设计一个异步的计时器
package main
import "fmt"
import "time"
func main(){
tchan := time.After(time.Second * 3)
fmt.Println(tchan)
fmt.Println(<-tchan)
}
go run
0xc00006c180
// 等待 3 秒
2021-04-28 15:09:40.785467031 +0800 CST m=+3.000189649
持续时间
package main
import "fmt"
import "time"
func main(){
seconds := 10
fmt.Print(time.Duration(seconds)*time.Second) // prints 10s
}
go run
10s
参考
鼓励一下