百木园-与人分享,
就是让自己快乐。

go 神奇的错误 time.Now().Format("2006-01-02 13:04:05") 比北京时间大8小时

困倦的时候写了个个获取本地时间,打印总比当前时间大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为分钟。。。。。。。。。。

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

 

 


来源:https://www.cnblogs.com/zhangmingda/p/17148362.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » go 神奇的错误 time.Now().Format("2006-01-02 13:04:05") 比北京时间大8小时

相关推荐

  • 暂无文章