SimpleDateFormat.parse()返回格式“ YYYY / MMM / d”的错误日期

zer*_*_ik 2 java date simpledateformat

我不明白为什么解析后还能收到其他日期:

Date date = new Date();
System.out.println(date);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY/MMM/d");
String dateString = simpleDateFormat.format(date);
System.out.println(dateString);
date = simpleDateFormat.parse(dateString);
System.out.println(date);
Run Code Online (Sandbox Code Playgroud)

输出:

Tue Apr 09 12:18:35 AST 2019
2019/Apr/9
Mon Dec 31 12:00:00 AST 2018
Run Code Online (Sandbox Code Playgroud)

Som*_*kar 6

如果您将年份格式更正为

yyyy

代替

YYYY

一切都会按预期进行

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MMM/d");
Run Code Online (Sandbox Code Playgroud)

Java 7引入了YYYY作为新的日期模式,以标识星期几。