要么我遗漏了一些完全明显的东西,要么对 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 天?