go时间日期格式转换

time.Now(), 获取 年 月 日 时 分 秒 纳秒

t := time.Now()	//获取当前时间,类型是go的时间类型Time
tY := time.Now().Year()
tMo := time.Now().Month()
tD := time.Now().Day()
tH := time.Now().Hour()
tMi := time.Now().Minute()
tS := time.Now().Second()
tNaS := time.Now().Nanosecond()

获取当前时间戳

tU := time.Now().Unix()       //单位秒,打印结果:1669775054
tUNa := time.Now().UnixNano() //单位纳秒,打印结果:1669775070433263400

获取当前时间的字符串格式

tStr := time.Now().Format("2006-01-02 15:04:05") //当前时间的字符串,2006-01-02 15:04:05据说是golang的诞生时间,固定写法
fmt.Printf("tStr: %v\n", tStr)                   //打印结果:tStr: 2022-11-30 10:22:47

时间字符串转时间戳

注意:时间模板必须是2006年1月2日15时4分5秒,时间格式可以是2006-01-02 15:04:052006/01/02 15:04:05

timeStr := "2022-11-30 10:27:39"
t, err := time.Parse("2006-01-02 15:04:05", timeStr)
if err == nil {
	fmt.Printf("t: %v\n", t)               //时间字符串转时间:打印结果:2022-09-08 11:02:39 +0000 UTC
	fmt.Printf("t.Unix(): %v\n", t.Unix()) //将时间 转换成 时间戳:1662634959
}

使用Parse默认获取为UTC时区。ParseInLocation 可以设置对应的时区。

var LOC, _ = time.LoadLocation("Asia/Shanghai")
//日期时间字符串
timeStr := "2022-11-30 10:21:15"
//要转换成时间日期的格式模板(go诞生时间,模板必须是这个时间)
tim, _ := time.ParseInLocation("2006-01-02 15:04:05", timeStr, LOC)
fmt.Println(tim.Unix())

时间戳转时间字符串

注意:用时间戳创建时间对象时,时间戳的数据类型为int64,我们一般从外部拿到的时间是int或其他int类型的,需要转换成int64

//时间戳
chuo := 1669774875
//时间日期格式模板
timeStr := time.Unix(int64(chuo), 0).Format("2006-01-02 15:04:05")
fmt.Printf("timeStr: %v\n", timeStr)
tU := time.Now().Unix() //已知的时间戳
tFStr := time.Unix(tU, 0).Format("2006-01-02 15:04:05")
fmt.Printf("tFStr: %v\n", tFStr)//打印结果:tFStr: 2022-11-30 10:16:54

时间字符串转时间

tFStr := "2022-11-30 10:27:39"
fT, err := time.Parse("2006-01-02 15:04:05", tFStr)
if err == nil {
	fmt.Printf("fT: %v\n", fT)
}

你可能感兴趣的:(golang,golang,开发语言)