Package kotlin.time

API for measuring time intervals and calculating durations.

For more information, see our Time measurement guide.

Types

Common
JVM
JS
Native
1.3

AbstractDoubleTimeSource

An abstract class used to implement time sources that return their readings as Double values in the specified unit.

abstract class AbstractDoubleTimeSource : WithComparableMarks
Common
JVM
JS
Native
1.9

AbstractLongTimeSource

An abstract class used to implement time sources that return their readings as Long values in the specified unit.

abstract class AbstractLongTimeSource : WithComparableMarks
Common
JVM
JS
Native
1.9

ComparableTimeMark

A TimeMark that can be compared for difference with other time marks obtained from the same TimeSource.WithComparableMarks time source.

interface ComparableTimeMark : 
    TimeMark,
    Comparable<ComparableTimeMark>
Common
JVM
JS
Native
1.6

Duration

Represents the amount of time one instant of time is away from another instant.

class Duration : Comparable<Duration>
Common
JVM
JS
Native
1.6

DurationUnit

The list of possible time measurement units, in which a duration can be expressed.

enum class DurationUnit
Common
JVM
JS
Native
1.9

TestTimeSource

A time source that has programmatically updatable readings. It is useful as a predictable source of time in tests.

class TestTimeSource : AbstractLongTimeSource
Common
JVM
JS
Native
1.9

TimedValue

Data class representing a result of executing an action, along with the duration of elapsed time interval.

data class TimedValue<T>
Common
JVM
JS
Native
1.9

TimeMark

Represents a time point notched on a particular TimeSource. Remains bound to the time source it was taken from and allows querying for the duration of time elapsed from that point (see the function elapsedNow).

interface TimeMark
Common
JVM
JS
Native
1.9

TimeSource

A source of time for measuring time intervals.

interface TimeSource

Annotations

Common
JVM
JS
Native
1.3

ExperimentalTime

This annotation marks the experimental preview of the standard library API for measuring time and working with durations.

annotation class ExperimentalTime

Extensions for External Classes

Properties

Common
JVM
JS
Native
1.3

days

Returns a Duration equal to this Int number of days.

val Int.days: Duration

Returns a Duration equal to this Long number of days.

val Long.days: Duration

Returns a Duration equal to this Double number of days.

val Double.days: Duration
Common
JVM
JS
Native
1.3

hours

Returns a Duration equal to this Int number of hours.

val Int.hours: Duration

Returns a Duration equal to this Long number of hours.

val Long.hours: Duration

Returns a Duration equal to this Double number of hours.

val Double.hours: Duration
Common
JVM
JS
Native
1.3

microseconds

Returns a Duration equal to this Int number of microseconds.

val Int.microseconds: Duration

Returns a Duration equal to this Long number of microseconds.

val Long.microseconds: Duration

Returns a Duration equal to this Double number of microseconds.

val Double.microseconds: Duration
Common
JVM
JS
Native
1.3

milliseconds

Returns a Duration equal to this Int number of milliseconds.

val Int.milliseconds: Duration

Returns a Duration equal to this Long number of milliseconds.

val Long.milliseconds: Duration

Returns a Duration equal to this Double number of milliseconds.

val Double.milliseconds: Duration
Common
JVM
JS
Native
1.3

minutes

Returns a Duration equal to this Int number of minutes.

val Int.minutes: Duration

Returns a Duration equal to this Long number of minutes.

val Long.minutes: Duration

Returns a Duration equal to this Double number of minutes.

val Double.minutes: Duration
Common
JVM
JS
Native
1.3

nanoseconds

Returns a Duration equal to this Int number of nanoseconds.

val Int.nanoseconds: Duration

Returns a Duration equal to this Long number of nanoseconds.

val Long.nanoseconds: Duration

Returns a Duration equal to this Double number of nanoseconds.

val Double.nanoseconds: Duration
Common
JVM
JS
Native
1.3

seconds

Returns a Duration equal to this Int number of seconds.

val Int.seconds: Duration

Returns a Duration equal to this Long number of seconds.

val Long.seconds: Duration

Returns a Duration equal to this Double number of seconds.

val Double.seconds: Duration

Functions

Common
JVM
JS
Native
1.9

measureTime

Executes the given function block and returns the duration of elapsed time interval.

fun measureTime(block: () -> Unit): Duration
fun TimeSource.measureTime(block: () -> Unit): Duration
fun Monotonic.measureTime(block: () -> Unit): Duration
Common
JVM
JS
Native
1.9

measureTimedValue

Executes the given function block and returns an instance of TimedValue class, containing both the result of the function execution and the duration of elapsed time interval.

fun <T> measureTimedValue(block: () -> T): TimedValue<T>

Executes the given function block and returns an instance of TimedValue class, containing both the result of function execution and the duration of elapsed time interval.

fun <T> TimeSource.measureTimedValue(
    block: () -> T
): TimedValue<T>
fun <T> Monotonic.measureTimedValue(
    block: () -> T
): TimedValue<T>
Common
JVM
JS
Native
1.6

times

Returns a duration whose value is the specified duration value multiplied by this number.

operator fun Int.times(duration: Duration): Duration
operator fun Double.times(duration: Duration): Duration
Common
JVM
JS
Native
1.6

toDuration

Returns a Duration equal to this Int number of the specified unit.

fun Int.toDuration(unit: DurationUnit): Duration

Returns a Duration equal to this Long number of the specified unit.

fun Long.toDuration(unit: DurationUnit): Duration

Returns a Duration equal to this Double number of the specified unit.

fun Double.toDuration(unit: DurationUnit): Duration
JVM
JRE8
1.6

toJavaDuration

Converts kotlin.time.Duration value to java.time.Duration value.

fun Duration.toJavaDuration(): Duration
JVM
1.8

toTimeUnit

Converts this kotlin.time.DurationUnit enum value to the corresponding java.util.concurrent.TimeUnit value.

fun DurationUnit.toTimeUnit(): TimeUnit