я следующая строка, представляющая дату и время, это ISO 8601 совместимый:Почему синтаксический анализ даты на некоторых устройствах вызывает исключение ArrayIndexOutOfBoundsException?
2014-03-11T11: 57: 15 + 0000
Я использую Codename One SimpleDateFormat класс для разбора этой строки, чтобы объект Date, а затем заполнить календарь объект:
Calendar calendar = Calendar.getInstance();
SimpleDateFormat format = new SimpleDateFormat(DateTimeFormats.ISO_8601);
Date date = format.parse("2014-03-11T11:57:15+0000");
calendar.setTime(date);
DateFormats.ISO_8601 определяются как
YYYY-MM-dd'T'HH: мм: сульфасалазин
На Codename одном тренажера этот код правильно обрабатывает строку и устанавливает дату с правильными значениями. Это также работает на Nokia C1-01. Тем не менее, запуск того же кода на эмуляторе Nokia 206 или DefaultCldcPhone1 из Java ME SDK приводит к исключению ArrayIndexOutOfBounds при вызове format.parse. Трассировка стека за который запутывается:
java.lang.ArrayIndexOutOfBoundsException
- java.util.Calendar.get(), bci=98
- al.a(), bci=3
- al.a(), bci=18
- al.parse(), bci=1013
Кто-нибудь знает, почему это происходит, как я могу предотвратить это, или предложить работу вокруг для заполнения календаря из строки без необходимости писать свой собственный парсер?
Любая помощь очень ценится!