我有以下字符串,表示日期和时间,它符合ISO 8601标准:
2014-03-11T11:57:15+0000
我使用代码名一个SimpleDateFormat类将字符串解析为Date对象,然后填充Calendar对象:
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‘ssZ:mm:ssZ
在代码名模拟器上,此代码正确地解析字符串并用正确的值设置日期。这也适用于诺基亚C1-01。但是,在Nokia206或Java的DefaultCldcPhone1模拟器上运行相同的代码会导致调用format.parse时出现ArrayIndexOutOfBounds异常。在此之后的堆栈跟踪被混淆:
java.lang.ArrayIndexOutOfBoundsException
- java.util.Calendar.get(), bci=98
- al.a(), bci=3
- al.a(), bci=18
- al.parse(), bci=1013有人知道为什么会发生这种情况吗?我怎样才能阻止它的发生,或者建议在不用编写自己的解析器的情况下从字符串中填充日历呢?
任何帮助都非常感谢!
发布于 2015-01-08 17:55:24
我们建议使用com.codename1.l10n.SimpleDateFormat类而不是java.text包中的类。这将使您能够在模拟器上重现问题并更准确地调试它。
https://stackoverflow.com/questions/27839610
复制相似问题