package main
import (
"time"
"fmt"
)
func main() {
// 获取 当前时间
now := time.Now()
fmt.Println("当前时间:",now) // %!(EXTRA time.Time=2021-04-09 15:58:34.0508706 +0800 CST m=+0.004986801)
fmt.Printf("当前时间=%v , 类型=%T",now,now) // now=2021-04-09 16:03:41.2784475 +0800 CST m=+0.004986101 , type=time.Time
fmt.Println("\n")
// 获取 年月日时分秒
fmt.Println(now)
fmt.Println(now.Year(),now.Month(),int(now.Month()),now.Day()) // 2021 April 4 9
fmt.Println(now.Hour(),now.Minute(),now.Second()) // 16 23 20
// 格式化时间 Printf SPrintf
fmt.Printf("年月日时分秒 %d-%d-%d %d:%d:%d \n",now.Year(),int(now.Month()),now.Day(),now.Hour(),now.Minute(),now.Second())
dateStr := fmt.Sprintf("年月日时分秒 %d-%d-%d %d:%d:%d \n",now.Year(),int(now.Month()),now.Day(),now.Hour(),now.Minute(),now.Second())
fmt.Printf(dateStr) // 结果相同: 年月日时分秒 2021-4-9 16:23:20
fmt.Println(now.Format("2006-01-02 15:04:05")) // 固定格式输出当前 年月日时分秒,2006-01-02 15:04:05,固定写法
fmt.Println(now.Format("2006-01-02"))
fmt.Println(now.Format("15:04:05"))
// time.sleep 用法
// Year,Month,Day,Hour,Minute,Second,Millisecond毫秒,Microsescond微秒,Nanosecond纳秒
t1 := time.Now().Second()
time.Sleep(time.Second * 3) // 睡3秒
t2 := time.Now().Second()
fmt.Println(t2-t1)
fmt.Println(time.Now().Year())
// time Unix和UnixNano 的用法
// 从时间点 1970年1月1日 UTC时间到时间点所经过的时间
now1 := time.Now()
fmt.Println(now1.Unix()) // 单位:秒 1618195108
fmt.Println(now1.UnixNano()) // 单位:纳秒 1618195108933101300
// 如果 纳秒为单位的unix时间超出了int64能表示的范围,结果是 未定义的
}