首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在某些设备上解析日期会抛出一个ArrayIndexOutOfBoundsException?

为什么在某些设备上解析日期会抛出一个ArrayIndexOutOfBoundsException?
EN

Stack Overflow用户
提问于 2015-01-08 11:56:47
回答 1查看 509关注 0票数 2

我有以下字符串,表示日期和时间,它符合ISO 8601标准:

2014-03-11T11:57:15+0000

我使用代码名一个SimpleDateFormat类将字符串解析为Date对象,然后填充Calendar对象:

代码语言:javascript
复制
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异常。在此之后的堆栈跟踪被混淆:

代码语言:javascript
复制
java.lang.ArrayIndexOutOfBoundsException
- java.util.Calendar.get(), bci=98
- al.a(), bci=3
- al.a(), bci=18
- al.parse(), bci=1013

有人知道为什么会发生这种情况吗?我怎样才能阻止它的发生,或者建议在不用编写自己的解析器的情况下从字符串中填充日历呢?

任何帮助都非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2015-01-08 17:55:24

我们建议使用com.codename1.l10n.SimpleDateFormat类而不是java.text包中的类。这将使您能够在模拟器上重现问题并更准确地调试它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27839610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档