天天看點

格式化時間用了YYYY-MM-dd,元旦當天老闆喊我回去改Bug!

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

我們先看一下什麼情況!

格式化時間用了YYYY-MM-dd,元旦當天老闆喊我回去改Bug!
格式化時間用了YYYY-MM-dd,元旦當天老闆喊我回去改Bug!
格式化時間用了YYYY-MM-dd,元旦當天老闆喊我回去改Bug!

可以看出上述的幾個時間都出現了問題!連某大廠的手環也沒逃過命運啊!

問題複現:

注意:JDK測試版本為1.7

格式化時間用了YYYY-MM-dd,元旦當天老闆喊我回去改Bug!

 執行結果:

格式化時間用了YYYY-MM-dd,元旦當天老闆喊我回去改Bug!

可以看出來使用"YYYY-MM-DD"格式化時間出現了錯誤!

具體是什麼原因哪?

這是因為Java語言中在特定的時間或者數字等資料上,平時你感覺一切都OK!但是在特定時間、特定環境就會出問題的情況!剛好格式化時間就算其中的一個!

2020年跨年的時候剛好是2019和2020交換的時候,于是就出現了格式化時間的問題,歸其原因就是使用了"YYYY-MM-dd"格式化時間!

YYYY 是 week-based-year,現在就已經 2020 年了,yyyy 還是 2019 年!

Java聖經表示:

YYYY 表示:當天所在的周屬于的年份,一周從周日開始,周六結束,隻要本周跨年,那麼這周就算入下一年。

J ava自己的BUG,還向聖經一樣讓人又記又背的! [笑cry]

總結:

繼續閱讀