昨天你用的 YYYY-MM-dd 被捶了嗎?
- 2020 年 2 月 20 日
- 筆記
來源:zhuzhiqiang
v2ex.com/t/633650
- BUG 的表現
- BUG 的原因
- 相關資源
昨天在v站上看到這個關於YYYY-MM-dd的使用而出現Bug的問題。在時間、數字等數據上,存在很多類似這種平時一切OK,特定時間、特定環境出問題的情況是非常多的。只是很多時候,我們對於各種細節定義在開始的時候都不太注意,都是從每一次使用問題出現之後才開始有了「刻骨銘心」的認識。
不論昨天你是否也經歷了這樣的Bug,還是沒有經歷的讀者,希望看到這篇文章之後,對這個細節可以上點心,避免日後因為這個細節而犯錯。
下面就來一起看看這個問題的表現和原因吧:
BUG 的表現

BUG 的原因
YYYY
是 week-based-year
,今天就已經 2020
年了
yyyy
還是 2019
年
YYYY
表示:當天所在的周屬於的年份,一周從周日開始,周六結束,只要本周跨年,那麼這周就算入下一年。
相關資源
- https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html#patterns
- https://nakedsecurity.sophos.com/2019/12/23/serious-security-the-decade-ending-y2k-bug-that-wasnt/