Android api 21:解析ISO8601时长

Android api 21: parsing ISO8601 duration

我试图在屏幕上显示我从 ISO8601 格式的 api 获得的持续时间,格式如下所示:PT#H#M#S。 我找到了这个解决方案:

Duration duration = Duration.parse(durationString);

但是它需要 api 26 级,我的最低等级是 21。

还有其他方法吗?

您找到了很好的解决方案。好消息是,即使你正在为 API 级别 21 编码,你也不需要放弃它。我建议你将 ThreeTenABP 库添加到你的项目中。并确保您导入 org.threeten.bp.Duration 而不是来自 java.time 的版本。那你应该没问题。

ThreeTenABP 是 ThreeTen Backport 的 Android 版本,后者又是 java.time 的后向移植版本,现代 Java 日期和时间 API 包括 Duration class,到 Java 6 和 7。backport 是由开发 java.time 的同一个人创建的,据报道坚如磐石。

有人告诉我 ThreeTenABP 的依赖项是(我没有测试):

compile group: 'org.threeten', name: 'threetenbp', version: '1.3.3', classifier: 'no-tzdb'

链接