困倦的时候写了个个获取本地时间,打印总比当前时间大8小时,找了很久原因
package main import ( "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.003123801 nowStr: 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为分钟。。。。。。。。。。
阿弥陀佛!!!!!!!!
标签:02,13,01,04,05,2006 From: https://www.cnblogs.com/zhangmingda/p/17148362.html