Golang Go语言时间格式化的奇怪设定 —— 为什么你一直出错

发布于 1周前 作者 nodeper 来自 Go语言

详见: http://blog.shajiquan.com/2015/12/golang-time-format/

顺便看看我用 pelican 做的一个 blog,折腾很久…
Golang Go语言时间格式化的奇怪设定 —— 为什么你一直出错

34 回复

……一直就是这么规定的呀……感觉 2006 比 YY 还是有一点儿优势

更多关于Golang Go语言时间格式化的奇怪设定 —— 为什么你一直出错的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


确实,我也觉得 2006 更好。不过刚开始不习惯。

前段时间项目中一个老司机跟我抱怨说一直有个 bug 解决不了,我一问原来是 go 的时间问题,我狂笑半天。哈哈。那天在群里又见有人问这个问题,于是写篇日志记录一下。

优势在哪。。求指点

2006-01-02 15:04:05.000000
年 /月 /日, 时 /分 /秒, 每个值都不同,
不会像 y/m/d/h/M/s 有时候容易混淆,
MM/mm 是月份 还是分钟 ?
SS/ss 是秒还是毫秒, 很容易记混了.

我的表情呢……

楼主整站 nginx 404

刚开始我也是觉得奇怪,然后。。。
- 1
- 2
- 3 (15)
- 4
- 5
- 2006
- Z0700 时区

楼主,你可以嵌入可运行代码到博客哦~

https://wide.b3log.org/playground

Share 后可生成嵌入代码。

不会吧,我 host 在 github 啊。不过这域名先前是在自己的 VPS 绑定的,可能是你那边 DNS 缓存?

话说我都已经设置了 CNAME , github 不停地发邮件提醒我 DNS balabala 。

这么牛酷!我看看。谢谢。

已嵌入: http://blog.shajiquan.com/2015/12/golang-time-format/

话说这个服务我很早就注册过了,但一直没有真正使用过。很酷。

2006-1-2-3-4-5 挺好记的

share 的代码会永久保存码?会不会定期清理?

感觉挺卡哇伊的。




Wide 上面的代码会努力永久保留的 :p

赞同 这么记就很好记了,小时之所以是 15 是因为 03 没法区分出来 24 小时的 3 还是 12 小时的 3
2006 实际不用记, go 是 2006 年出的 记好了

对,我也这么急记的

赞同前面的。不过, Go 并不是 2006 年出的。维基百科如是说:

『…a programming language developed at Google[10] in 2007…The language was announced in November 2009…』

哦 我被骗了
原来是因为老外把年放在后面了,还是如 所说的顺序
http://stackoverflow.com/questions/20530327/origin-of-mon-jan-2-150405-mst-2006-in-golang

不过这个方法真是挺好记的。 起码比 Python 那种好记多了。

同感好记
但其实还是分人,有的人更习惯原来的记法,但我就经常弄混 Mm,Ss

看下 time 的文档就知道这 123456 的由来了
01/02 03:04:05PM '06 -0700

文档肯定是看了的啦,不看怎么知道这个鬼,怎么可能正确的格式化。

您用的 DNS 是 119.29.29.29 吗?我发现这个 DNS 下确实会解析变成 404 。

我的 DNS 是网关,但是印象中确实有这个 DNS 服务器

谢谢。我跟踪了两天看了一下。挺奇怪的。

最开始我的 DNS 解析用的是域名注册商那边的,当时指定过 A 记录。后来我切换到了 dnspod.com不是.CN ),在 dnspod.com 这边做的是 CNAME 记录。

按理说应该覆盖。

可是用 http://www.webkaka.com/Ping.aspx 来看,全球范围内,有好多地方仍然在用旧的 A 记录。真是晕掉了。

wide 作者?报告 bug ,移动端拉不到底…

移动端的适配还不大行,实在看不下去了请来这里来一发: https://github.com/b3log/wide/issues/new




是的,会有些问题,刚开始页面也会被撑坏,有时点 run 还无法执行成功。后来我改了一下,样式上稍微好些。

求提交一发 pr !

在Go语言中,时间格式化确实有一些细节需要注意,这可能是导致你一直出错的原因。首先,需要明确的是,Go语言的时间格式化是基于特定的布局(layout)字符串,这与C语言中的strftime或Python中的strftime有所不同。

在Go中,时间格式化使用time.Formattime.Parse函数,这两个函数都需要一个布局字符串作为参数。这个布局字符串是固定的,它定义了时间的格式,例如"2006-01-02 15:04:05"。这个特定的布局字符串是Go语言设计的一个特点,它要求你使用固定的时间和日期(即Go的诞生日期:2006年1月2日15点4分5秒)来指定格式。

如果你在使用时间格式化时出错,可能的原因包括:

  1. 布局字符串不正确。确保你使用的布局字符串与你要格式化的时间相匹配。
  2. 时间值本身有问题。例如,如果你尝试格式化的时间值是nil,那么将会引发错误。
  3. 使用了不支持的格式说明符。Go语言的布局字符串只支持特定的格式说明符,如2006表示年份,01表示月份,等等。

为了避免出错,建议仔细阅读Go语言官方文档中关于时间格式化的部分,并熟悉常用的布局字符串。此外,使用time.Time类型的方法(如FormatParse)时,务必确保传入正确的参数和布局字符串。

希望这些信息能帮助你解决在使用Go语言时间格式化时遇到的问题。

回到顶部