Spec-Zone.ru › Kotlin 2

minus

kotlin-stdlib/kotlin.time/Instant/minus

Начиная с Kotlin: 2.3

operator fun minus(duration: Duration): Instant

Возвращает момент времени, полученный вычитанием указанной длительности из этого момента времени.

Если длительность положительна, возвращённый момент времени предшествует этому моменту. Если длительность отрицательна, возвращённый момент времени следует за этим моментом.

Если результат выходит за допустимые границы Instant, возвращаемое значение ограничивается этими границами.

Важно: Duration.Companion.days — это кратные 24 часам значения, однако в некоторых часовых поясах отдельные дни могут быть короче или длиннее из-за перевода часов. Для арифметических операций, учитывающих переходы часовых поясов, рассмотрите возможность использования kotlinx-datetime.

Примеры

import kotlin.test.*
import kotlin.time.*
import kotlin.time.Duration.Companion.hours
import kotlin.time.Duration.Companion.nanoseconds
import kotlin.time.Duration.Companion.seconds

fun main() { 
   //sampleStart 
   // Finding a moment that's earlier than the starting point by the given amount of real time
val instant = Instant.fromEpochSeconds(7 * 60 * 60, nanosecondAdjustment = 123_456_789)
val fiveHoursEarlier = instant - 5.hours
println(fiveHoursEarlier.epochSeconds == 2 * 60 * 60L) // true
println(fiveHoursEarlier.nanosecondsOfSecond == 123_456_789) // true 
   //sampleEnd
}

operator fun minus(other: Instant): Duration

Возвращает Duration между двумя моментами времени: other и this.

Возвращаемая длительность положительна, если этот момент времени наступает позже другого, и отрицательна, если этот момент времени наступает раньше другого.

Результат никогда не ограничивается допустимыми границами, однако следует учитывать, что для моментов времени, значительно удалённых друг от друга, возвращаемое значение может неточно представлять длительность между ними из-за потери точности.

Обратите внимание, что источники значений Instant (в частности, Clock) не гарантированно синхронизированы друг с другом или даже монотонны, поэтому результат этой операции может быть отрицательным, даже если другой момент времени был зафиксирован позже этого, и наоборот. Для измерения временных интервалов рассмотрите возможность использования TimeSource.Monotonic.

Примеры

import kotlin.test.*
import kotlin.time.*
import kotlin.time.Duration.Companion.hours
import kotlin.time.Duration.Companion.nanoseconds
import kotlin.time.Duration.Companion.seconds

fun main() { 
   //sampleStart 
   // Finding the difference between two instants in terms of elapsed time
val instant1 = Instant.fromEpochSeconds(0) // The Unix epoch start.
val instant2 = Instant.fromEpochSeconds(7 * 60 * 60) // 7 hours since the Unix epoch.
val elapsedTime = instant1 - instant2 // The duration between instant1 and instant2.
println(elapsedTime == (-7).hours) // true 
   //sampleEnd
}

© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.time/-instant/minus.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API