Константа NANO_OF_DAY

Константа NANO_OF_DAY класса ChronoField представляет поле времени, которое содержит количество наносекунд, прошедших с начала суток. Значение может варьироваться от 0 до 86399999999999 (24 часа × 60 минут × 60 секунд × 1000000000 наносекунд - 1 наносекунда). Данное поле является временным (time-based) и может быть использовано с классами LocalTime, LocalDateTime и другими временными объектами.

Импорт

kotlinimport java.time.temporal.ChronoField

Синтаксис

kotlinChronoField.NANO_OF_DAY

Пример

Получим количество наносекунд из текущего времени:

kotlinimport java.time.LocalTime

val currentTime = LocalTime.now()
val nanoOfDay = currentTime.getLong(ChronoField.NANO_OF_DAY)
println("Nano of day: $nanoOfDay")

Результат выполнения кода:

kotlinString "Nano of day: 12345678900000"

Пример

Создадим время из количества наносекунд:

kotlinval nanoOfDay = 3661000000000L
val time = LocalTime.ofNanoOfDay(nanoOfDay)
println("Time: $time")

Результат выполнения кода:

kotlinString "Time: 01:01:01"

Пример

Проверим валидность значения для NANO_OF_DAY:

kotlinval validValue = 43200000000000L
val invalidValue = 86400000000000L

println("Valid: " + ChronoField.NANO_OF_DAY.isValidValue(validValue))
println("Invalid: " + ChronoField.NANO_OF_DAY.isValidValue(invalidValue))

Результат выполнения кода:

kotlinString "Valid: true"
String "Invalid: false"

Пример

Используем NANO_OF_DAY с LocalDateTime:

kotlinimport java.time.LocalDateTime

val dateTime = LocalDateTime.now()
val nanoOfDay = dateTime.getLong(ChronoField.NANO_OF_DAY)
println("Nano of day from DateTime: $nanoOfDay")

Результат выполнения кода:

kotlinString "Nano of day from DateTime: 12345678900000"

Смотрите также

  • константу SECOND_OF_DAY класса ChronoField,
    которая представляет секунды в пределах суток
  • константу MILLI_OF_DAY класса ChronoField,
    которая представляет миллисекунды в пределах суток
  • функцию toNanoOfDay класса LocalTime,
    которая преобразует время в количество наносекунд