聽說用了YYYY-MM-dd的程序員,前些天都在加班改Bug
大叔我北漂十多年,一直沒有搖到北京的車牌,每周都需要通過一個 APP 辦理“進(jìn)京證”,當(dāng)我辦理 19 年最后一次進(jìn)京證的時候,APP 給出了這樣的提示:

日期顯示:“2020-12-31”!
車友群里面立馬有人不淡定了,雖然大家都猜出來,這應(yīng)該是 APP 的 Bug,但還是難免要吐槽一下。
那么產(chǎn)生這個 Bug 的原因是什么呢?其實很簡單,就是 把 yyyy-MM-dd 寫成了 YYYY-MM-dd 。
如果對時間處理不那么熟悉的程序員看到這里,會認(rèn)為 yyyy 和 YYYY 有什么區(qū)別么?在代碼里面敲一下,他們的結(jié)果也都是相同的啊!
public class DateTest {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
calendar.set(2019, Calendar.AUGUST, 31);
Date strDate = calendar.getTime();
DateFormat formatUpperCase = new SimpleDateFormat("yyyy-MM-dd");
System.out.println("2019-08-31 to yyyy-MM-dd: " + formatUpperCase.format(strDate));
formatUpperCase = new SimpleDateFormat("YYYY-MM-dd");
System.out.println("2019-08-31 to YYYY-MM-dd: " + formatUpperCase.format(strDate));
}
}
運(yùn)行結(jié)果為:
2019-08-31 to yyyy-MM-dd: 2019-08-31
2019-08-31 to YYYY-MM-dd: 2019-08-31
但是如果我們把日期改成 2019-12-31 再試試呢?結(jié)果產(chǎn)生了差異:
2019-12-31 to yyyy-MM-dd: 2019-12-31
2019-12-31 to YYYY-MM-dd: 2020-12-31
那么產(chǎn)生這個問題的原因是什么呢?其實很簡單:Y 和 y 實際上代表了不同的含義。

- y:year-of-era;正正經(jīng)經(jīng)的年;
- Y:week-based-year;只要本周跨年,那么這周就算入下一年;
這是開發(fā)過程中的一個小細(xì)節(jié),一不小心就掉到坑里了。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- js時間戳轉(zhuǎn)yyyy-MM-dd HH-mm-ss工具類詳解
- js實現(xiàn)把時間戳轉(zhuǎn)換為yyyy-MM-dd hh:mm 格式(es6語法)
- Javascript將字符串日期格式化為yyyy-mm-dd的方法
- 正則表達(dá)式實現(xiàn)將MM/DD/YYYY格式的日期轉(zhuǎn)換為YYYY-MM-DD格式
- js字符串日期yyyy-MM-dd轉(zhuǎn)化為date示例代碼
- JS驗證日期的格式Y(jié)YYY-mm-dd 具體實現(xiàn)
- Winform之TextBox輸入日期格式驗證yyyy-mm-dd
- 匹配yyyy-mm-dd日期格式的的正則表達(dá)式
相關(guān)文章
mybatisPlus 實體類與數(shù)據(jù)庫表映射關(guān)系詳解
這篇文章主要介紹了mybatisPlus 實體類與數(shù)據(jù)庫表映射關(guān)系詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教。2022-01-01
SpringBoot項目導(dǎo)入aliyun oss starter依賴后啟動報錯問題
這篇文章主要介紹了SpringBoot項目導(dǎo)入aliyun oss starter依賴后啟動報錯問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01
Spring中@Transactional(rollbackFor=Exception.class)屬性用法介紹
這篇文章介紹了Spring中@Transactional(rollbackFor=Exception.class)屬性的用法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-12-12
Java日常練習(xí)題,每天進(jìn)步一點點(12)
下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你2021-07-07

