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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章