Obtaining the current instant is often needed, as is doing some Duration-based operations on it. Instant is useful even when the rest of the library isn't: you don't need the timezone functionality to log human-readable timestamps (https://github.com/Kotlin/kotlinx-datetime/issues/121#issuecomment-877895270) or represent file access and modification times (okio), or sort events, etc.
With this change, the kotlinx-datetime library would provide calendar- and timezone-aware operations, whereas Instant, Duration, Clock, and TimeSource would work with just "the flow of time" as seen by the computer.
The parsing and formatting facilities for Instant should probably stay in the kotlinx-datetime library, as they aren't very meaningful without the notion of a calendar.
InstantIso8601Serializer and InstantComponentSerializer would probably enter the kotlinx-serialization library in some form.
Obtaining the current instant is often needed, as is doing some
Duration
-based operations on it.Instant
is useful even when the rest of the library isn't: you don't need the timezone functionality to log human-readable timestamps (https://github.com/Kotlin/kotlinx-datetime/issues/121#issuecomment-877895270) or represent file access and modification times (okio), or sort events, etc.With this change, the kotlinx-datetime library would provide calendar- and timezone-aware operations, whereas
Instant
,Duration
,Clock
, andTimeSource
would work with just "the flow of time" as seen by the computer.Instant
should probably stay in thekotlinx-datetime
library, as they aren't very meaningful without the notion of a calendar.InstantIso8601Serializer
andInstantComponentSerializer
would probably enter thekotlinx-serialization
library in some form.