点击上方“码农进阶之路”,选择“设为星标”
回复“面经”获取面试资料
那么产生这个 Bug 的原因是什么呢实很简单,就是把 yyyy-MM-dd 写成了 YYYY-MM-dd 。
如果对时间处理不那么熟悉的程序员看到这里,会认为 yyyy 和 YYYY 有什么区别么代码里面敲一下,他们的结果也都是相同的啊!
但是如果我们把日期改成 2019-12-31 再试试呢果产生了差异:
-
y:year-of-era;正正经经的年;
-
Y:week-based-year;只要本周跨年,那么这周就算入下一年;也就是 12 月
可以看出来使用”YYYY-MM-DD”格式化时间出现了错误!
具体是什么原因哪/strong>
这是因为Java语言中在特定的时间或者数字等数据上,平时你感觉一切都OK!但是在特定时间、特定环境就会出问题的情况!刚好格式化时间就算其中的一个!
2020年跨年的时候刚好是2019和2020交换的时候,于是就出现了格式化时间的问题,归其原因就是使用了”YYYY-MM-dd”格式化时间!
YYYY 是 week-based-year,现在就已经 2020 年了,yyyy 还是 2019 年!
Java自己的BUG,还向圣经一样让人又记又背的! [笑cry]
开发中还是用yyyy-MM-dd来做日期格式化,其它的就不要用了!
面经 | 原理 | 源码 | 实战 | 工具

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!