Функция of

Функция of класса OffsetDateTime создает объект даты-времени со смещением из отдельных числовых компонентов. В параметры мы передаем год, месяц, день, час, минуту, секунду, наносекунды и объект ZoneOffset, представляющий смещение от UTC.

Импорт

kotlinimport java.time.OffsetDateTime
import java.time.ZoneOffset

Синтаксис

kotlinfun of(year: Int, month: Int, day: Int, hour: Int, minute: Int, second: Int, nanoOfSecond: Int, offset: ZoneOffset): OffsetDateTime
kotlinfun of(year: Int, month: Int, day: Int, hour: Int, minute: Int, second: Int, offset: ZoneOffset): OffsetDateTime
kotlinfun of(year: Int, month: Int, day: Int, hour: Int, minute: Int, offset: ZoneOffset): OffsetDateTime
kotlinfun of(date: LocalDate, time: LocalTime, offset: ZoneOffset): OffsetDateTime

Пример

Создадим объект OffsetDateTime для даты "2025-07-15", времени "14:30:45" и смещения "+03:00":

kotlinval offsetDateTime = OffsetDateTime.of(2025, 7, 15, 14, 30, 45, 0, ZoneOffset.ofHours(3))
println(offsetDateTime)

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

kotlinString "2025-07-15T14:30:45+03:00"

Пример

Создадим OffsetDateTime без наносекунд:

kotlinval offsetDateTime = OffsetDateTime.of(2025, 12, 31, 23, 59, 30, ZoneOffset.ofHours(2))
println(offsetDateTime)

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

kotlinString "2025-12-31T23:59:30+02:00"

Пример

Создадим OffsetDateTime только с часами и минутами:

kotlinval offsetDateTime = OffsetDateTime.of(2025, 3, 20, 9, 15, ZoneOffset.ofHoursMinutes(5, 30))
println(offsetDateTime)

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

kotlinString "2025-03-20T09:15+05:30"

Пример

Создадим OffsetDateTime из объектов LocalDate и LocalTime:

kotlinimport java.time.LocalDate
import java.time.LocalTime

val date = LocalDate.of(2025, 5, 10)
val time = LocalTime.of(18, 45, 20)
val offset = ZoneOffset.ofHours(-4)

val offsetDateTime = OffsetDateTime.of(date, time, offset)
println(offsetDateTime)

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

kotlinString "2025-05-10T18:45:20-04:00"

Пример

Получим отдельные компоненты даты-времени со смещением:

kotlinval offsetDateTime = OffsetDateTime.of(2025, 11, 5, 10, 30, 15, 500, ZoneOffset.ofHours(1))

val year = offsetDateTime.year
val month = offsetDateTime.monthValue
val day = offsetDateTime.dayOfMonth
val hour = offsetDateTime.hour
val minute = offsetDateTime.minute
val second = offsetDateTime.second
val offset = offsetDateTime.offset

println("Year: $year, Month: $month, Day: $day")
println("Time: $hour:$minute:$second")
println("Offset: $offset")

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

kotlinString "Year: 2025, Month: 11, Day: 5"
String "Time: 10:30:15"
String "Offset: +01:00"

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

  • функцию now класса OffsetDateTime,
    которая возвращает текущую дату-время со смещением
  • функцию parse класса OffsetDateTime,
    которая преобразует строку в OffsetDateTime
  • класс ZoneOffset,
    который представляет смещение от UTC
  • класс LocalDateTime,
    который представляет дату и время без смещения