前言
哈嘍小伙伴們好久不見(jiàn),今天來(lái)個(gè)有意思的雷,看你有沒(méi)有埋過(guò)。
正文
不多說(shuō)廢話,公司最近來(lái)了個(gè)外地回來(lái)的小伙伴,在廣州工作過(guò)6年,也是一名挺有經(jīng)驗(yàn)的開(kāi)發(fā)。
他提交的代碼被小組長(zhǎng)發(fā)現(xiàn)有問(wèn)題,給打回了,原因是里面日期格式化的用法有問(wèn)題,用的SimpleDateFormat,但不知道是手誤還是什么原因,格式用了YYYY-MM-dd。
這種寫(xiě)法埋了一個(gè)不大不小的雷。
用一段測(cè)試代碼就可以展示出來(lái)問(wèn)題
打印結(jié)果如下:
很明顯,使用YYYY時(shí),2023年變成了2024年,在正常情況下可能沒(méi)問(wèn)題,但是在跨年的時(shí)候大概率就會(huì)有問(wèn)題了。
原因比較簡(jiǎn)單,與小寫(xiě)的yyyy不同,大寫(xiě)的YYYY表示一個(gè)基于周的年份。它是根據(jù)周計(jì)算的年份,而不是基于日歷的年份。通常情況下,兩者的結(jié)果是相同的,但在跨年的第一周或最后一周可能會(huì)有差異。
比如我如果換成2023-12-30又不會(huì)有問(wèn)題了
另外,Hutool工具類本身是對(duì)Java一些工具的封裝,DateUtil里面也有用到SimpleDateFormat,因此也會(huì)存在類似的問(wèn)題。
避免這個(gè)問(wèn)題的方法也十分簡(jiǎn)單,要有公用的格式類,所有使用日期格式的地方都引用這個(gè)類,這個(gè)類中就定義好yyyy-MM-dd想給的格式即可,這樣就不會(huì)出現(xiàn)有人手誤給大家埋雷了。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-660413.html
總結(jié)
- 日期時(shí)間格式統(tǒng)一使用yyyy小寫(xiě);
- 日期格式要規(guī)定大家都引用定義好的工具類,避免有人手誤打錯(cuò)。
最后再回頭想一想,這種小問(wèn)題并不會(huì)馬上暴露出來(lái),倘若沒(méi)有被發(fā)現(xiàn),到了明年元旦,剛好跨年的時(shí)候,是不是就要坑死一堆人了。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-660413.html
到了這里,關(guān)于工作6年了日期時(shí)間格式化還在寫(xiě)YYYY瘋狂給隊(duì)友埋雷的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!