Используя jdk1.7.0_55, я получаю parseposition.errorIndex как 0 в случае часового пояса, не является стандартным.SimpleDateFormat.parse возвращает errorIndex как 0
Но использование jdk1.6.0_38 я получаю parseposition.errorIndex как 21 на тот же неправильный формат временной зоны
Ниже приведен пример:
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());
Результат Использование JDK 6:
Index Error 21
Результат Использование JDK 7
индекс 0
Ошибка Почему существует разница в этом?
Пожалуйста, помогите
Я могу воспроизвести его. Очевидно, регрессия. Вы можете отправить это сообщение как ошибку в OpenJDK. –
Не должно быть, но кажется, что jdk 6 дает вам дату и 7 дает вам pp. –
Оба будут генерировать исключение, если я использую метод синтаксического анализа (даты). В jdk 6 он дает индекс ошибок как правильное положение, а индекс ошибки jdk 7 равен 0. @TaylorCourtney – Roshan