时间格式化用了“YYYY-MM-dd”,元旦当天老板喊我回去改Bug。。。

标题中描述的事件,是我在使用“交管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云笔记
随时随地,让你拥有最新,最便捷的掌上云服务

发布了147 篇原创文章 · 获赞 169 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/weixin_44259720/article/details/104494118