【发布时间】:2018-08-20 03:41:45
【问题描述】:
在 API 24 中的 android.icu.util 包中引入了一个新的 Calendar 类,具有更多日历和更好的本地化。
我想知道是否有办法使用此日历 for Android API >=24,以及旧的不推荐使用的日历来自 java.util 包的 Android API
设置minSdkVersion = 24 是有原因的。
此外,我无法根据 API 级别将 android.icu.util.Calendar 分配给 java.util.Calendar 字段。
有没有人解决这个问题?还是只使用旧日历并等到旧设备上市?
【问题讨论】:
-
为什么不采取措施将ThreeTenABP 添加到您的Android 项目中,以便您可以使用java.time, the modern Java date and time API?与它一起工作要好得多。说对
android.icu.util.Calendar了解不多,但java.util.Calendar至少早已过时且设计不佳,我对icu的印象也不是很好。 -
重点是什么?您的应用是否应该在 API 级别 24 及更高级别上运行时利用某些 ICU 功能,从而向用户提供在 API 级别 23 及更低级别上运行时不可用的功能?
-
或者使用我的库 Time4A,它提供了良好的国际化(如 ICU4J)和更多质量更好的日历,即使与旧的 API 级别兼容。
-
@MenoHochschild 我没有找到任何关于许可证的内容,这很奇怪。
-
@OleV.V.也许这是一个很好的观点。但是出于什么原因,android 开发人员实现了 icu.Calendar?我不想迁移到 ThreeTen 的原因: 1. 不想要臃肿的 apk 2. 想要使用 Android 时区,而不是 IANA 的最新时区。我有另一个使用 Jodatime 的应用程序,因此给我带来了很多痛苦。
标签: java android calendar deprecated icu