标题中描述的事件,是我在使用“交管12123”APP时偶然看到的,这个问题在第二天就被改掉了,

我猜想,一定是有人被叫回去改掉了这个Bug。

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

我们简单讨论下这个问题:

1.问题复现:

注意:JDK测试版本为1.7

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

执行结果:

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

可以看出来使用"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云笔记
随时随地,让你拥有最新,最便捷的掌上云服务

相关文章:

  • 2021-07-17
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-13
  • 2022-12-23
  • 2022-12-23
  • 2021-03-31
猜你喜欢
  • 2021-07-01
  • 2021-10-25
  • 2022-12-23
  • 2021-10-19
  • 2022-12-23
  • 2022-02-27
相关资源
相似解决方案