polarisxu
polarisxu copied to clipboard
posts/go/why-time-use-2006/
这是我见过对 golang 的时间格式化最中肯的回答了。👍
那为啥不 2001-02-03 04:05:06 呢
请问你的21-8-4 9:30:00是1921年还是2021年???还是反人类设计,不如类似yyyy-MM-dd用一定的规则来代替
请问你的21-8-4 9:30:00是1921年还是2021年???还是反人类设计,不如类似yyyy-MM-dd用一定的规则来代替
很有道理哇,可以去 go 仓库提一个 issue 或者直接提个 pr
好奇试了一下,发现 68 69 是个分界线,小于等于 68 都会判定为 20xx 年,大于等于 69 为 19xx 年。
应该有 issue 或者 goblog 说明过这个问题,不过暂时还没找到相关文章。
有点像平时我们在写日记或者填写日期的时候,很自然就写上 22.12.30 这样,大家一看 22,喔,很自然就理解为 2022 了,同理,写了个 93.12.19 也能理解为是 1993 年而不是 2093。像 77 这样夹在中间的数字,就很有歧义,目前大概率会理解为 1977 上世纪七十年代而不是未来的 2077,而在 2076 年大概率会理解为是 2077 而不是 1977。
所处的时代不同,对于简写的时间也会产生不同的理解。两个数字的年份缩写,几乎只能在特定的场景下使用,滥用一定会造成理解偏差。
据我所知,其他语言也有对于短年份时间的解析,例如 PHP 同样会解析 22 为 2022,99 解析为 1999。所以说,这不是语言设计的缺陷,而是短年份本身在表达上的局限性。(举个不恰当的例子,有点歪理哦,就好比喊人直接喊姓,例如“嗨老张”,并不是任何场合都能这么叫)
请问你的21-8-4 9:30:00是1921年还是2021年???还是反人类设计,不如类似yyyy-MM-dd用一定的规则来代替
应该指2021年。 好像是根据一个日期规则, 比如“68” 比68小的就是20XX, 比68大的就是19XX 。。应该是的吧。