Używając jdk1.7.0_55, otrzymuję parseposition.errorIndex jako 0 w przypadku, gdy strefa czasowa nie jest standardowa.SimpleDateFormat.parse zwraca errorIndex jako 0
Ale używając jdk1.6.0_38 Dostaję parseposition.errorIndex jako 21 na tym samym formacie czasowej złym
Poniżej próbka:
String date = "13 Jan 2005 21:45:34 ABC";
String format = "dd MMM yyyy HH:mm:ss z";
ParsePosition pp = new ParsePosition(0);
pp.setIndex(0);
SimpleDateFormat sd = new SimpleDateFormat(format,Locale.ENGLISH);
Date d = sd.parse(date,pp);
System.out.println("Error Index "+pp.getErrorIndex());
Wynik Korzystanie z JDK 6:
Indeks błędów 21
Wynik Korzystanie z jdk 7
Index Error 0
Dlaczego istnieje różnica w nim?
Proszę pomóc
Mogę to odtworzyć. Oczywiście regresja. Możesz wysłać tę wiadomość jako błąd do OpenJDK. –
Nie powinno być, ale wydaje się, że jdk 6 podaje datę, a 7 podaje pp. –
Oba wyrzucą wyjątek, jeśli użyję metody parse (date). W jdk 6 podaje indeks błędu jako poprawną pozycję, aw jdk 7 wskaźnik błędu jako 0. @TaylorCourtney – Roshan