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

日期顯示:“2020-12-31”!
車友群里面立馬有人不淡定了,雖然大家都猜出來,這應(yīng)該是 APP 的 Bug,但還是難免要吐槽一下。
那么產(chǎn)生這個(gè) Bug 的原因是什么呢?其實(shí)很簡(jiǎn)單,就是 把 yyyy-MM-dd 寫成了 YYYY-MM-dd 。
如果對(duì)時(shí)間處理不那么熟悉的程序員看到這里,會(huì)認(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)生這個(gè)問題的原因是什么呢?其實(shí)很簡(jiǎn)單:Y 和 y 實(shí)際上代表了不同的含義。

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

