昨天聽一同僚講到自己的項目中因為格式化時間用到了"YYYY-MM-dd",元旦當天被喊回去改Bug,到底是怎麼回事哪?
我們先看一下什麼情況!

可以看出上述的幾個時間都出現了問題!連某大廠的手環也沒逃過命運啊!
問題複現:
注意:JDK測試版本為1.7
執行結果:
可以看出來使用"YYYY-MM-DD"格式化時間出現了錯誤!
具體是什麼原因哪?
這是因為Java語言中在特定的時間或者數字等資料上,平時你感覺一切都OK!但是在特定時間、特定環境就會出問題的情況!剛好格式化時間就算其中的一個!
2020年跨年的時候剛好是2019和2020交換的時候,于是就出現了格式化時間的問題,歸其原因就是使用了"YYYY-MM-dd"格式化時間!
YYYY 是 week-based-year,現在就已經 2020 年了,yyyy 還是 2019 年!
Java聖經表示:
YYYY 表示:當天所在的周屬于的年份,一周從周日開始,周六結束,隻要本周跨年,那麼這周就算入下一年。
J ava自己的BUG,還向聖經一樣讓人又記又背的! [笑cry]
總結: