我目前正在使用DateUtils类,该类有助于在整个系统中格式化日期。 我有一个格式为 yyyyMMdd 的日期,它是从字符串解析的。
我传入另一种格式以接收"周期"值,格式为 E d MMM YY。
下面,应该给我一个 31 年 12 月 18 日星期一的时间段。但是,它将返回 19 年 12 月 31 日星期一。为什么这一年要向前滚动?
谢谢
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 : 周年
你写了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