2015-01-08 3 views
2

я следующая строка, представляющая дату и время, это 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 

Кто-нибудь знает, почему это происходит, как я могу предотвратить это, или предложить работу вокруг для заполнения календаря из строки без необходимости писать свой собственный парсер?

Любая помощь очень ценится!

ответ

0

Мы рекомендуем использовать класс com.codename1.l10n.SimpleDateFormat вместо одного из пакета java.text. Это позволит вам воспроизвести проблему на симуляторе и отладить ее более точно.

Смежные вопросы