Константа ISO_OFFSET_DATE_TIME
Константа ISO_OFFSET_DATE_TIME класса DateTimeFormatter предоставляет предопределенный форматтер для парсинга и форматирования даты-времени со смещением часового пояса в формате год-месяц-деньTчасы:минуты:секунды.наносекунды±часы:минуты.
Данный форматтер соответствует стандарту ISO-8601 и может использоваться для работы с такими классами как OffsetDateTime и ZonedDateTime.
Импорт
import java.time.format.DateTimeFormatter
Синтаксис
DateTimeFormatter.ISO_OFFSET_DATE_TIME
Пример
Используем ISO_OFFSET_DATE_TIME для парсинга строки с датой-временем и смещением:
val 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)
Результат выполнения кода:
String "2025-07-15T14:30:45.123456789+03:00"
Пример
Форматируем объект OffsetDateTime в строку с помощью ISO_OFFSET_DATE_TIME:
val 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)
Результат выполнения кода:
String "2025-12-31T23:59:45+02:00"
Пример
Получим отдельные компоненты даты-времени после парсинга:
val 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")
Результат выполнения кода:
String "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,
которая создает кастомный форматтер для парсинга дат