突然不經意的一瞥,發現了一個問題:今天明明才2020年剛開始,可是爲什麼有2020年12月31號的單號產生了。心中一種莫名的僵硬,要出事了。出現這種情況,首先懷疑的是時間格式化問題。發現了YYYY這個東西。
趕緊寫段代碼驗證一下,是不是YYYY的問題。
Calendar calendar = Calendar.getInstance(); calendar.set(2019, Calendar.NOVEMBER, 30); try { Date date = calendar.getTime(); SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println(format1.format(date)); SimpleDateFormat format2 = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss"); System.out.println(format2.format(date)); } catch (Exception e) { e.printStackTrace(); }// 結果:
// 2019-11-30 16:01:05
// 2019-11-30 16:01:05
通過上面代碼發現沒問題啊。既然有這種寫法,說明yyyy和YYYY肯定是有區別的。果不其然,找到了原因
y:正常的年
Y:如果本週跨年,那麼這一週就算入下一年
修改一下代碼:
Calendar calendar = Calendar.getInstance(); calendar.set(2019, Calendar.DECEMBER, 30); try { Date date = calendar.getTime(); SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println(format1.format(date)); SimpleDateFormat format2 = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss"); System.out.println(format2.format(date)); } catch (Exception e) { e.printStackTrace(); }// 結果:
// 2019-12-30 16:10:54
// 2020-12-30 16:10:54
驗證了結果