yyyy-MM-dd HH:mm:ss和YYYY-MM-dd HH:mm:ss踩坑之路

突然不經意的一瞥,發現了一個問題:今天明明才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

驗證了結果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章