在设置日期格式期间,SimpleDateFormat不正确地将年份向前滚动

2022-08-24 00:00:00 simpledateformat java

我目前正在使用一个DateUtils类,它可以帮助设置整个系统中日期的格式。 我有一个yyyyMMdd格式的日期,它是从字符串解析而来的。

我传入另一种格式以接收格式为E d MMM YY的"Period"值。

下面应该给我的周期是MON 31 DEC 18。但是它返回MON 31 DEC 19。为什么年份向前滚动?

谢谢

final SimpleDateFormat dateFormat_E_d_MMM_YY = new SimpleDateFormat("E d MMM YY");
final SimpleDateFormat dateFormat_yyyyMMdd = new SimpleDateFormat("yyyyMMdd");
final Date date = dateFormat_yyyyMMdd.parse("20181231");
System.out.println(date);
System.out.println(dateFormat_E_d_MMM_YY.format(date));

解决方案

您使用的是E d MMM yy而不是E d MMM YY

来自文档:

y:年

Y:周年

相关文章