//时间常变量
const (
Nanosecond Duration = 1 //type Duration int64
Microsecond = 1000 * Nanosecond
Millisecond = 1000 * Microsecond
Second = 1000 * Millisecond
Minute = 60 * Second
Hour = 60 * Minute
)
package main
import (
"fmt"
"time"
)
func main() {
fmt.Println(time.Now()) //2023-02-18 13:09:47.9115727 +0800 CST m=+0.002695301
t := time.Now()
fmt.Println(t.Year())
fmt.Println(t.Month())
fmt.Println(int(t.Month())) //type Month int
fmt.Println(t.Day())
fmt.Println(t.Hour())
fmt.Println(t.Minute())
fmt.Println(t.Second())
//时间格式化
dateStr := fmt.Sprintf("%d-%d-%d %d:%d:%d", t.Year(), int(t.Month()), t.Day(), t.Hour(), t.Minute(), t.Second())
fmt.Println(dateStr)
//任意组合,特殊的时间格式化
fmt.Println(t.Format("2006-01-02 15:04:05 -07 MST")) // China Standard Time
fmt.Println(t.Format("2006-02 04:05"))
//休眠
time.Sleep(time.Second)
//Unix时间戳
fmt.Println(t.Unix(), t.UnixNano())
}
Timer
package main
import (
"fmt"
"time"
)
func main() {
timer := time.NewTimer(time.Second * 3)
fmt.Println(time.Now())
fmt.Println(<-timer.C) // 此处会进行阻塞
<-time.After(time.Second * 2) // 等价
timer2 := time.NewTimer(time.Second * 3)
go func() {
<-timer2.C
}()
timer2.Stop() //
timer2.Reset(time.Second)
time.Sleep(time.Second * 3)
}
Ticker
package main
import (
"fmt"
"time"
)
func main() {
ticker := time.NewTicker(time.Second * 2)
counter := 0
for _ = range ticker.C {
counter++
fmt.Println("2 second has been killed")
if counter == 10 {
fmt.Println("You die")
ticker.Stop()
}
}
}