大叔我北漂十多年,一直沒有搖到北京的車牌,每週都需要通過一個 APP 辦理“進京證”,當我辦理 19 年最後一次進京證的時候,APP 給出了這樣的提示:
日期顯示:“2020-12-31”!
那麼產生這個 Bug 的原因是什麼呢?其實很簡單,就是把 yyyy-MM-dd 寫成了 YYYY-MM-dd 。
如果對時間處理不那麼熟悉的程式設計師看到這裡,會認為 yyyy 和 YYYY 有什麼區別麼?在程式碼裡面敲一下,他們的結果也都是相同的啊!
執行結果為:
但是如果我們把日期改成 2019-12-31 再試試呢?結果產生了差異:
那麼產生這個問題的原因是什麼呢?其實很簡單:Y 和 y 實際上代表了不同的含義。
y:year-of-era;正正經經的年;Y:week-based-year;只要本週跨年,那麼這周就算入下一年;也就是 12 月這是開發過程中的一個小細節,一不小心就掉到坑裡了。
最新評論