НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
845 of 1310 menu

OffsetDateTime

Класс OffsetDateTime представляет дату и время со смещением от UTC/Greenwich. Он хранит все поля даты и времени с точностью до наносекунды, а также смещение от UTC/Greenwich. Этот класс полезен для представления точных моментов времени с учетом часового пояса.

Импорт

import java.time.OffsetDateTime import java.time.ZoneOffset import java.time.format.DateTimeFormatter

Синтаксис

// Создание текущей даты и времени со смещением fun now(): OffsetDateTime // Создание из компонентов даты, времени и смещения fun of(year: Int, month: Int, dayOfMonth: Int, hour: Int, minute: Int, second: Int, nanoOfSecond: Int, offset: ZoneOffset): OffsetDateTime // Парсинг из строки fun parse(text: CharSequence): OffsetDateTime fun parse(text: CharSequence, formatter: DateTimeFormatter): OffsetDateTime

Пример

Создание текущей даты и времени со смещением:

val currentDateTime = OffsetDateTime.now() println(currentDateTime)

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

String "2025-01-01T12:30:45.123456789+03:00"

Пример

Создание конкретной даты и времени со смещением:

val offset = ZoneOffset.ofHours(3) val dateTime = OffsetDateTime.of(2025, 12, 31, 15, 30, 45, 0, offset) println(dateTime)

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

String "2025-12-31T15:30:45+03:00"

Пример

Парсинг строки в формате ISO-8601:

val dateTimeStr = "2025-07-15T10:30:45+02:00" val dateTime = OffsetDateTime.parse(dateTimeStr) println(dateTime)

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

String "2025-07-15T10:30:45+02:00"

Пример

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

val dateTime = OffsetDateTime.parse("2025-03-20T14:25:30+03:00") val year = dateTime.year val month = dateTime.monthValue val day = dateTime.dayOfMonth val hour = dateTime.hour val minute = dateTime.minute val offset = dateTime.offset println("Year: $year, Month: $month, Day: $day") println("Hour: $hour, Minute: $minute") println("Offset: $offset")

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

String "Year: 2025, Month: 3, Day: 20" String "Hour: 14, Minute: 25" String "Offset: +03:00"

Пример

Преобразование в LocalDateTime и LocalDate:

val offsetDateTime = OffsetDateTime.parse("2025-08-10T18:45:30-05:00") val localDateTime = offsetDateTime.toLocalDateTime() val localDate = offsetDateTime.toLocalDate() println("LocalDateTime: $localDateTime") println("LocalDate: $localDate")

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

String "LocalDateTime: 2025-08-10T18:45:30" String "LocalDate: 2025-08-10"

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

  • класс LocalDateTime,
    который представляет дату и время без смещения
  • класс ZonedDateTime,
    который представляет дату и время с информацией о часовом поясе
  • класс ZoneOffset,
    который представляет смещение от UTC/Greenwich
  • класс DateTimeFormatter,
    который используется для форматирования и парсинга дат
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить