困倦的时候写了个个获取本地时间,打印总比当前时间大8小时,找了很久原因

package mainimport (    "fmt"    "time")func main()  {    now := time.Now()    fmt.Println(now)    fmt.Println("nowStr:", now.Format("2006-01-02 13:04:05"))}

输出

2023-02-23 15:40:49.9662692 +0800 CST m=+0.003123801nowStr: 2023-02-23 23:40:49    

发现是东八区时间,但是格式化打印结果就大了8小时

根因:小时格式化字符串,小时占位符应该是15,不是13,写成13 自动被解读成1和3,1=01为月份,当时是2月份解读成2,3不属于占位符作为字符串直接输出,所以如上测试正好看上去是多了8小时,实际上只是小时位里面写了个月份+字符“3”…. 坑死我了,还以为是时区哪里搞错了…..啊啊啊啊啊啊啊啊啊啊

备注:标准占位符年:2006, 月:01, 日:02, 时:15,分:04, 秒:05.

证实如上猜测:

fmt.Println("nowStr:", now.Format("2006-01-02 14:04:05"))

输出nowStr: 2023-02-23 249:49:10 其中2为月份,49为分钟。。。。。。。。。。

阿弥陀佛!!!!!!!!