标题中描述的事件,是我在使用“交管12123”APP时偶然看到的,这个问题在第二天就被改掉了,
我猜想,一定是有人被叫回去改掉了这个Bug。
我们简单讨论下这个问题:
1.问题复现:
注意:JDK测试版本为1.7
执行结果:
可以看出来使用"YYYY-MM-DD"格式化时间出现了错误!
那么,具体是什么原因哪?
2.原因分析:
这是因为Java语言中在特定的时间或者数字等数据上,平时你感觉一切都OK!但是在特定时间、特定环境就会出问题的情况!刚好格式化时间就算其中的一个!
2020年跨年的时候刚好是2019和2020交换的时候,于是就出现了格式化时间的问题,归其原因就是使用了"YYYY-MM-dd"格式化时间!
YYYY 是 week-based-year,现在就已经 2020 年了,yyyy 还是 2019 年!
Java圣经表示:
YYYY 表示:当天所在的周属于的年份,一周从周日开始,周六结束,只要本周跨年,那么这周就算入下一年。
Java自己的BUG,还向圣经一样让人又记又背的!!~~哈哈O(∩_∩)O哈哈~~
3.解决办法:
不论你是否也经历了这样的Bug,希望看到这篇文章之后,对这个细节可以上点心,避免日后因为这个细节而犯错。
开发中还是用“yyyy-MM-dd”来做日期格式化,其它的就不要用了!!
更多精彩,请关注我的"今日头条号":Java云笔记
随时随地,让你拥有最新,最便捷的掌上云服务