使用 kotlinx-datetime 处理日期
以适用于多平台的方式处理时间和日期
使用 kotlinx-datetime 处理日期 是 CoddyKit 上的免费 Kotlin Multiplatform Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Kotlin Multiplatform Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Kotlin Multiplatform Academy 课程共包含 4 节课。
本课时的部分内容尚未翻译,以英文显示。
Dates Need a Library
The core stdlib has no shared date type, so KMP uses kotlinx-datetime, an official multiplatform library for time.
Add the Dependency
You pull kotlinx-datetime into commonMain in your build file, and then every target can work with dates the same way.
implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.6.0")Instant Is a Moment
An Instant is a single point on the timeline, the same exact moment no matter which device reads it.
val now: Instant = Clock.System.now()Time Zones Matter
The same instant looks different per TimeZone. The library lets you convert moments into local wall-clock time safely.
val zone = TimeZone.currentSystemDefault()LocalDateTime for People
A LocalDateTime is the human-readable date and time, like a calendar entry, without any time-zone baggage attached.
val dt = now.toLocalDateTime(zone)Read the Parts
From a LocalDateTime you can read fields like year, month, day and hour, all in plain common Kotlin.
val y = dt.year
val h = dt.hourLocalDate for Calendars
When you only care about the day, use LocalDate. It models a date with no time component at all.
val today: LocalDate = dt.dateDo Math With Durations
You can add or subtract a Duration from an Instant to shift moments forward or backward in time.
val later = now.plus(1, DateTimeUnit.HOUR, zone)Parse and Format Text
kotlinx-datetime can parse ISO strings into instants and turn them back into text, ideal for API payloads.
val parsed = Instant.parse("2024-01-01T00:00:00Z")Identical On Every Target
Because the library is multiplatform, your date logic produces the same result on Android, iOS and desktop. 🙂
Keep Dates in Shared Code
Put all your time handling in commonMain with kotlinx-datetime, so the two apps never disagree about dates.
Quick Check
Which type marks one exact moment in time?
Recap
Use kotlinx-datetime for dates: Instant for moments, LocalDateTime for people, and shared code that agrees across platforms.
常见问题解答
「使用 kotlinx-datetime 处理日期」课时是免费的吗?
是的 — 「使用 kotlinx-datetime 处理日期」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Kotlin Multiplatform Academy 课程的其余内容,请升级到 CoddyKit PRO。 Kotlin Multiplatform Academy 课程共包含 4 节课。
「使用 kotlinx-datetime 处理日期」这节课中我会学到什么?
以适用于多平台的方式处理时间和日期 你通过在浏览器中直接运行的动手代码来练习 Kotlin Multiplatform Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Kotlin Multiplatform Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Kotlin Multiplatform Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「使用 kotlinx-datetime 处理日期」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Kotlin Multiplatform Academy 课中编写并运行代码吗?
能。每节 Kotlin Multiplatform Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 随处可用的字符串、数字与集合
- 共享代码中的 map、filter 与 fold
- 使用 kotlinx-datetime 处理日期
- Common 标准库中没有什么