java日期格式化程序中的行为不一致

Ste*_* B. 0 java simpledateformat

要么我缺少一些完全明显的东西,要么对SimpleDateFormat的行为做出无根据的假设.

我认为它应该是对称的,对吧?如果我有

SimpleDateFormatter formatter;
String datestr=...
Date d = formatter.parse(datestr);
String s=formatter.format(d);
Run Code Online (Sandbox Code Playgroud)

我应该找回原来的String.但是 -

public static final String DATE_FORMAT = "E MMM dd HH:mm:dd zz yyyy";
String test = "Mon Nov 29 09:53:24 EST 2010";
long l = new SimpleDateFormat(DATE_FORMAT).parse(test).getTime();
System.out.println(test);
System.out.println(new SimpleDateFormat(DATE_FORMAT).format(new Date(l)));
Run Code Online (Sandbox Code Playgroud)

打印出来:

美国东部时间2010年11月29日星期一09:53:24

11月24日星期三09:53:24 EST 2010

我怎么会失去5天?

Fal*_*rri 6

"E MMM dd HH:mm:dd zz yyyy";
       ^^       ^^