Android Studio Kotlin项目如何获取整数类型的一年中的第几天
问题原因与解决方案
报错原因
Kotlin标准库无全局getDay()方法,你查阅的文档大概率是其他平台的Kotlin扩展、或是Java已废弃的java.util.Date.getDay()方法(该方法返回值为星期几,并非一年中的第几天,早已不推荐使用),因此Android Studio会提示函数未定义。
适配API 21的可行实现方案
方案1:无需额外配置,全版本兼容
直接使用Android全API级别都支持的Calendar类获取:
// 直接调用即可得到当前是一年中的第几天的Int值 val dayOfYear: Int = Calendar.getInstance().get(Calendar.DAY_OF_YEAR)
方案2:使用现代时间库(推荐)
Java 8引入的java.time库设计更合理、无线程安全问题,可通过开启Android核心库Desugar兼容API 21及以上版本:
- 开启Desugar配置:在app模块的
build.gradle文件中添加以下配置:
android { compileOptions { coreLibraryDesugaringEnabled true sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = "1.8" } } dependencies { coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4' }
- 调用代码:
val dayOfYear: Int = LocalDate.now().dayOfYear
报错截图参考

内容的提问来源于stack exchange,提问作者AB_Coding
相关产品推荐
相关产品推荐

