2010-11-29 74 views
0

我錯過了一些完全明顯的東西,或者對SimpleDateFormat的行爲做出了毫無根據的假設。在java日期格式化程序中不一致的行爲

我認爲它應該是對稱的,對吧?如果我有

SimpleDateFormatter formatter; 
String datestr=... 
Date d = formatter.parse(datestr); 
String s=formatter.format(d); 

我應該找回我的原始字符串。然而 -

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

打印出:

週一11月29日9時53分24秒EST 2010

週三11月24日9時53分24秒EST 2010

我怎麼失去5天?

回答

6
 
"E MMM dd HH:mm:dd zz yyyy"; 
     ^^  ^^ 
+0

猜測這是「顯而易見的」類錯誤。謝謝。 – 2010-11-29 21:57:29