0

要么我遗漏了一些完全明显的东西,要么对 SimpleDateFormat 的行为做出了毫无根据的假设。

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

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

打印出来:

2010 年 11 月 29 日星期一 09:53:24 EST

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

我怎么会失去 5 天?

4

1 回答 1

6
"E MMM dd HH:mm:dd zz yyyy";
       ^^ ^^
于 2010-11-29T21:52:33.037 回答