Непоследовательное поведение в форматере даты Java - PullRequest
0 голосов
/ 30 ноября 2010

Либо я упускаю что-то совершенно очевидное, либо делаю необоснованные предположения о поведении 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)));

распечатывает:

Пн 29 ноября 09:53:24 EST 2010

ср. 24 ноября 09:53:24 EST 2010

Как я теряю 5 дней?

1 Ответ

6 голосов
/ 30 ноября 2010
"E MMM dd HH:mm:dd zz yyyy";
       ^^       ^^
...