我想到的唯一原因是Android不支持Java8。这是真的吗?
Android API level 26现在包含了java.time的实现,其中包括LocalDate
类。
对于Android <26,可选方案包括:
java.time框架内置于Java 8及其后续版本中。这些类取代了老旧的遗留日期时间类,如java.util.Date
、Calendar
和SimpleDateFormat
。
Joda-Time项目现已进入维护模式,建议迁移到java.time类。
欲了解更多,请参阅Oracle教程。并在Stack Overflow中搜索许多示例和解释。规范为JSR 310。
您可以直接与数据库交换java.time对象。使用符合JDBC 4.2或更高版本要求的JDBC驱动程序。无需字符串,也无需使用java.sql.*
类。
如何获取java.time类?
是的,Android不支持Java-8。关于Java-8中包含的新日期/时间API,您可以查看此问题:
http://code.google.com/p/android/issues/detail?id=62192
目前没有计划在Google Android中引入JSR-310(java.time-package)。
最终,包含在Java 8中的日期/时间API已经添加到Android API级别26中,该版本最近发布。
现在,由于API desugaring支持(Android Gradle Plugin 4.0.0+),您可以在应用程序中使用java.time API和其他Java 8+ API,而无需最低API级别。
https://developer.android.com/studio/write/java8-support#library-desugaring
简单来说,您需要使用Android Gradle插件4.0.0或更高版本,并在compileOptions中包含coreLibraryDesugaringEnabled true
,这样才能使内容通俗易懂。请保留HTML标签。android {
defaultConfig {
// Required when setting minSdkVersion to 20 or lower
multiDexEnabled true
}
compileOptions {
// Flag to enable support for the new language APIs
coreLibraryDesugaringEnabled true
// Sets Java compatibility to Java 8
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}