基本使用

func test1() {
	// now 为time.Time Month为time.Month
	t := time.Now()
	fmt.Printf("t: %v\n", t)
	// t: 2022-03-06 10:58:34.229841 +0800 CST m=+0.012645201
	year := t.Year()
	month := t.Month()
	day := t.Day()
	hour := t.Hour()
	minute := t.Minute()
	second := t.Second()
	fmt.Printf("%d-%02d-%02d %02d-%02d-%02d\n", year, month, day, hour, minute, second)
	// 2022-03-06 10-58-34
	fmt.Printf("%T,%T,%T,%T,%T,%T,%T\n", t, year, month, day, hour, minute, second)
	// time.Time,int,time.Month,int,int,int,int
}

时间戳

func test2() {
	// 时间戳 到现在毫秒数
	t := time.Now()
	fmt.Printf("t.Unix(): %v\n", t.Unix())
	fmt.Printf("t.Unix(): %T\n", t.Unix())
	// 纳秒时间戳
	fmt.Printf("t.UnixNano(): %v\n", t.UnixNano())
	fmt.Printf("t.UnixNano(): %T\n", t.UnixNano())
}

时间戳转时间格式

func test3() {
	timestamp := time.Now().Unix()
	t := time.Unix(timestamp, 0) // 时间戳转时间格式
	fmt.Printf("t: %v\n", t)
	year := t.Year()
	month := t.Month()
	day := t.Day()
	hour := t.Hour()
	minute := t.Minute()
	second := t.Second()
	fmt.Printf("%d-%02d-%02d %02d-%02d-%02d\n", year, month, day, hour, minute, second)
}

时间格式化转化

func test4() {
	t := time.Now()
	now := t.Add(time.Hour * 3)
	//now.Format 方法格式化
	// 24小时
	fmt.Println(now.Format("2006-01-02 15:04:05"))
	// 12小时
	fmt.Println(now.Format("2006-01-02 03:04:05 PM"))
	fmt.Println(now.Format("2006/01/02 15:04:05"))
	fmt.Println(now.Format("2006/01/02")) //年月日
	fmt.Println(now.Format("15:04:05"))   //时分秒
}

字符串解析时间格式

func test5() {
	now := time.Now()
	fmt.Printf("now: %v\n", now)
	// 增加时区
	l, err := time.LoadLocation("Asia/Shanghai")
	if err != nil {
		fmt.Printf("err: %v\n", err)
		return
	}
	// 第一个参数2006-01-02 15:04:05
	t, err2 := time.ParseInLocation("2006-01-02 15:04:05", "2022-03-06 11:38:30", l)
	if err2 != nil {
		fmt.Printf("err2: %v\n", err2)
	}
	fmt.Printf("t: %v\n", t)
}