java中的YYYY和yyyy的日期bug

 public static void main(String[] args) {
        Calendar calendar=Calendar.getInstance();
        //2019-12-31
        calendar.set(2019,Calendar.DECEMBER,31);
        Date strDate=calendar.getTime();
        DateFormat formatUpperCase=new SimpleDateFormat("yyyy-MM-dd");
        System.out.println("yyyy-MM-dd------"+formatUpperCase.format(strDate));

        DateFormat formatCase=new SimpleDateFormat("YYYY-MM-dd");
        System.out.println("YYYY-MM-dd------"+formatCase.format(strDate));
    }

結果顯示:

yyyy-MM-dd------2019-12-31
YYYY-MM-dd------2020-12-31

我本來是 2019年12月31日,但是用YYYY-MM-dd進行轉換,卻直接多了一年?

  • YYYY是表示:當天所在的周屬於的年份,一週從週日開始,週六結束,只要本週跨年,那麼這周就算入下一年。12月31號正好是本週跨年,所以直接是下一年
  • yyyy是表示:是幾月就是幾月,我們想要的年的概念。
發佈了258 篇原創文章 · 獲贊 169 · 訪問量 60萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章