SimpleDateFormat在Date格式期间错误地将年份向前滚动

时间:2018-10-24 14:17:03

标签: java simpledateformat

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

我进入另一种格式,以接收格式为E d MMM YY的“期间”值。

下面,应该给我一段MON 31 DEC19。但是它正在返回MON 31 DEC19。为什么这一年向前发展?

谢谢

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));

2 个答案:

答案 0 :(得分:3)

您有一个错字,请使用E d MMM yy而不是E d MMM YY

从文档中:

  

y:年

     

Y:周年

答案 1 :(得分:1)

您已经写了YY,表示星期。 您需要年份,因此您需要写yy

如果需要更多详细信息,可以检查SimpleDateFormat类文档中不同变量的所有含义。

y   Year            Year    1996; 96
Y   Week year       Year    2009; 09
M   Month in year   Month   July; Jul; 07
w   Week in year    Number  27
W   Week in month   Number  2
D   Day in year     Number  189
d   Day in month    Number  10