昨天在v站上看到这个关于YYYY-MM-dd的使用而出现Bug的帖子(v2ex.com/t/633650)很是有意思,因此拿过来分享一下。html
在任何编程语言中,对于时间、数字等数据上,都存在不少相似这种平时一切OK,特定时间、特定环境出问题的状况。出现这种问题的根本缘由仍是咱们对于各类数据结构的细节定义在开始的时候都不太注意,都是从每一次使用问题出现以后才开始有了“刻骨铭心”的认识。java
不论昨天你是否也经历了这样的Bug,仍是没有经历的读者,但愿看到这篇文章以后,对这个细节能够上点心,避免往后由于这个细节而犯错。编程
下面就来一块儿看看这个问题的表现和缘由吧:segmentfault
YYYY
是week-based-year
,表示:当天所在的周属于的年份,一周从周日开始,周六结束,只要本周跨年,那么这周就算入下一年。因此2019年12月31日那天在这种表述方式下就已经 2020 年了。而当使用yyyy
的时候,就仍是 2019 年。api
欢迎关注个人公众号:程序猿DD,得到独家整理的学习资源和平常干货推送。
若是您对个人专题内容感兴趣,也能够关注个人博客: didispace.com