Константа ISO_OFFSET_DATE_TIME

Константа ISO_OFFSET_DATE_TIME класса DateTimeFormatter предоставляет предопределенный форматтер для парсинга и форматирования даты-времени со смещением часового пояса в формате год-месяц-деньTчасы:минуты:секунды.наносекунды±часы:минуты. Данный форматтер соответствует стандарту ISO-8601 и может использоваться для работы с такими классами как OffsetDateTime и ZonedDateTime.

Импорт

kotlinimport java.time.format.DateTimeFormatter

Синтаксис

kotlinDateTimeFormatter.ISO_OFFSET_DATE_TIME

Пример

Используем ISO_OFFSET_DATE_TIME для парсинга строки с датой-временем и смещением:

kotlinval dateTimeStr = "2025-07-15T14:30:45.123456789+03:00"
val formatter = DateTimeFormatter.ISO_OFFSET_DATE_TIME
val dateTime = java.time.OffsetDateTime.parse(dateTimeStr, formatter)

println(dateTime)

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

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

Пример

Форматируем объект OffsetDateTime в строку с помощью ISO_OFFSET_DATE_TIME:

kotlinval dateTime = java.time.OffsetDateTime.of(2025, 12, 31, 23, 59, 45, 0, java.time.ZoneOffset.ofHours(2))
val formatter = DateTimeFormatter.ISO_OFFSET_DATE_TIME
val formatted = dateTime.format(formatter)

println(formatted)

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

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

Пример

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

kotlinval dateTimeStr = "2025-03-20T10:15:30.5-05:00"
val formatter = DateTimeFormatter.ISO_OFFSET_DATE_TIME
val dateTime = java.time.OffsetDateTime.parse(dateTimeStr, formatter)

val year = dateTime.year
val month = dateTime.monthValue
val day = dateTime.dayOfMonth
val hour = dateTime.hour
val offset = dateTime.offset

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

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

kotlinString "Year: 2025, Month: 3, Day: 20, Hour: 10, Offset: -05:00"

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

  • константу ISO_LOCAL_DATE_TIME класса DateTimeFormatter,
    которая представляет дату-время без смещения часового пояса
  • константу ISO_ZONED_DATE_TIME класса DateTimeFormatter,
    которая представляет дату-время с полной информацией о часовом поясе
  • класс OffsetDateTime,
    который представляет дату и время со смещением от UTC
  • функцию ofPattern класса DateTimeFormatter,
    которая создает кастомный форматтер для парсинга дат