大多开发人员以为YYYY与yyyy的效果没什么区别。真实情况是存在区别的。
YYYY是表示:当天所在的周属于的年份,一周从周日开始,周六结束,只要本周跨年,那么这周就算入下一年。
我们以正常的代码来演示重现使用YYYY会出现的bug
SimpleDateFormat formatter1 = new SimpleDateFormat("YYYY"); String dateString1 = formatter1.format(new Date(1577781426000L));//时间为2019-12-31 16:37:06 System.out.println(dateString1); SimpleDateFormat formatter2 = new SimpleDateFormat("yyyy"); String dateString2 = formatter2.format(new Date(1577781426000L));//时间为2019-12-31 16:37:06 System.out.println(dateString2);
所以如果使用YYYY转换时间格式的时候,平常使用不会出现问题,但是一到跨年就会出现这种问题,比如正常时间是2019-12-31 16:37:06使用YYYY转换会出现2020-12-31 16:37:06的时间。
虽然是小问题,但也是需要预防的。