英文:
Formatting dates as dd_mm_yyyy in Go gives strange values
问题
所以,如标题所述,我正在尝试使用time.Now().Format("02_01_2006")将日期格式化为dd_mm_yy格式,就像在这个playground会话中所示:
http://play.golang.org/p/alAj-OcRZt
首先的问题是,dd_mm_yyyy不是一个可接受的格式,只有dd_mm_yy是可接受的,这没问题,我可以自己处理返回的字符串。
我想请你帮我弄清楚Go在处理这个输入时到底在做什么。
你应该注意到你得到的结果是:
10_1110009
相差了几千年,而且它丢失了下划线,只有_2才会这样。这个字符序列在这里代表了什么特殊的意义吗?
将最后一个下划线替换为连字符或空格会返回一个有效的结果。dd_mm_yy可以正常工作。只有这个特殊情况似乎完全无法处理。
在我的本地机器上(Go playground上有一个特定的日期),今天(第5天)的结果是:
05_01 5016
同样奇怪,甚至更奇怪,因为它用一个空格替换了一个似乎是ANSIC的东西。
英文:
So as in the title, I'm trying to format a date in dd_mm_yy format using time.Now().Format("02_01_2006") as shown in this playground session:
http://play.golang.org/p/alAj-OcRZt
First problem, dd_mm_yyyy isn't an acceptable format, only dd_mm_yy is, which is fine I can manipulate the returned string myself.
The problem I have for you is to help me figure out what Go is even trying to do with this input.
You should notice the result you get is:
10_1110009
A good few thousand years off and it's lost the underscore which it only does it for _2. Does this character sequence represent something special here?
Replacing the last underscore with a hyphen or space returns a valid result. dd_mm_yy works fine. Just this particular case seems to completely fly off the handle.
On my local machine (Go playground is on a specific date) the result for today (the 5th) is:
05_01 5016
Which is equally strange, if not moreso as it's substituted in a space which seems to be an ANSIC thing.
答案1
得分: 5
这很可能是由于以下错误引起的:https://github.com/golang/go/issues/11334
这个问题已经在Go 1.6beta1中修复了。
英文:
This is very likely due to the following bug: https://github.com/golang/go/issues/11334
This has been fixed in Go 1.6beta1
答案2
得分: 0
在他们的 GitHub 上发现了一个问题:
https://github.com/golang/go/issues/11334
基本上,_2 将 2 视为参考时间的日期值,然后尝试解析剩余部分(006),但它无法识别,所以从那里开始出错了。
英文:
Found an issue from their github:
https://github.com/golang/go/issues/11334
Basically _2 is taking the 2 as the day value from the reference time and then trying to parse the rest (006) which it doesn't recognise so it all goes wrong from there.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论