例子:
publicclassDateTest { publicstaticvoidmain(String[] args) { Calendarcalendar=Calendar.getInstance(); calendar.set(2019, Calendar.AUGUST, 31); DatestrDate=calendar.getTime(); DateFormatformatUpperCase=newSimpleDateFormat("yyyy-MM-dd"); System.out.println("2019-08-31 to yyyy-MM-dd: "+formatUpperCase.format(strDate)); formatUpperCase=newSimpleDateFormat("YYYY-MM-dd"); System.out.println("2019-08-31 to YYYY/MM/dd: "+formatUpperCase.format(strDate)); } }
运行结果为:
2019-8-31toyyyy-MM-dd: 2019-8-312019-8-31toYYYY/MM/dd: 2019-8-31
如果改成12月呢?结果是:
2019-12-31toyyyy-MM-dd: 2019-12-312019-12-31toYYYY-MM-dd: 2020-12-31
那么产生这个问题的原因是什么呢?其实很简单:Y 和 y 实际上代表了不同的含义。
- y:year-of-era;正正经经的年;
- Y:week-based-year;只要本周跨年,那么这周就算入下一年;
所以,开发同学还是正正经经用yyyy吧!!!!!!!