Java時間格式化時YYYY(大寫)和yyyy(小寫)的有區別,其中y 是Year、Y 表示的是Week year;Week year意思是當天所在的周屬於的年份,一週從週日開始,週六結束,只要本週跨年,那麼這周就算入下一年。2017-12-31是週日,恰好是2017最後一週並跨年,就取到2018年了;測試
1 public static void main(String[] args) throws ParseException { 2 SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd"); 3 Date currentDate=df.parse("2017-12-31"); 4 System.out.println("yyyy-MM-dd:"+DateFormatUtils.format(currentDate,"yyyy-MM-dd")); 5 System.out.println("YYYY-MM-dd:"+DateFormatUtils.format(currentDate,"YYYY-MM-dd")); 6 }
測試結果:yyyy-MM-dd:2017-12-31YYYY-MM-dd:2018-12-31