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为分钟。。。。。。。。。。

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

 

 

posted on   zhangmingda  阅读(260)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示