v2.0.0
平台与依赖
- 迁移到 Kotlin Multiplatform:Android(minSdk 24)/ JVM(11+)/ iOS(arm64 真机与模拟器)/ wasmJs 五目标,commonMain 单一代码;Android 不再要求 minSdk 26 与 desugaring
- 农历历法由 lunar-java 换为同作者 KMP 库 tyme4kt(
com.tyme.*API,MIT;全部农历断言实测与 lunar-java 一致,含农历 0 年下界与 2025 闰六月场景);java.time换为 kotlinx-datetime 0.8.0 +kotlin.time.Instant/Duration/Clock - wasmJs 内嵌
@js-joda/timezone:IANA 时区库随 klib 传递给消费方,零配置
API(破坏性)
nextTarget(now: Instant = Clock.System.now(), zone: TimeZone = TimeZone.currentSystemDefault()): Instant?、countdown(target: Instant, now: Instant);1.x 的ZonedDateTime调用方以instant.toLocalDateTime(zone)迁移- 推算结果统一以 0001-01-01..9999-12-31 为界:公历月/年重复越过 9999 现与农历一致抛
IllegalStateException(1.2.x 曾可组合出 10359 年的结果)
测试与 CI
- 101 个用例迁移到 commonTest(
kotlin.test),在 JVM / Android / wasm(Node) 三平台运行,iOS 模拟器由 macOS CI 执行 - AGP 9 的 KMP 库插件(
com.android.kotlin.multiplatform.library)+ Gradle 9.7 + spotless 8;CI 新增 macOS iOS 模拟器测试 job,以及 tag 触发的 Release 附件自动发布(本页产物即由其上传)
Maven 坐标:com.github.kamiiroawase:nexttime:2.0.0(JitPack)
Full Changelog: v1.2.2...v2.0.0