往期熱門文章:程序員
一、《往期精選優秀博文都在這裏了!》面試
昨天聽一同事講到本身的項目中由於格式化時間用到了"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 表示:當天所在的周屬於的年份,一週從週日開始,週六結束,只要本週跨年,那麼這周就算入下一年。
不論你是否也經歷了這樣的Bug,但願看到這篇文章以後,對這個細節能夠上點心,避免往後由於這個細節而犯錯。
開發中仍是用yyyy-MM-dd來作日期格式化,其它的就不要用了!
往期熱門文章: