Метод appendZoneOrOffsetId

Метод appendZoneOrOffsetId класса DateTimeFormatterBuilder добавляет шаблон для обработки идентификатора часового пояса ZoneId или смещения ZoneOffset. Этот метод позволяет парсить и форматировать строковые представления временных зон в различных форматах.

Импорт

kotlinimport java.time.format.DateTimeFormatterBuilder

Синтаксис

kotlinfun appendZoneOrOffsetId(): DateTimeFormatterBuilder

Пример

Создадим форматтер с поддержкой зоны и отформатируем дату-время:

kotlinimport java.time.ZonedDateTime
import java.time.ZoneId
import java.time.format.DateTimeFormatter

val builder = DateTimeFormatterBuilder()
val formatter = builder.appendZoneOrOffsetId().toFormatter()

val zonedDateTime = ZonedDateTime.of(2025, 12, 31, 15, 30, 0, 0, ZoneId.of("Europe/Moscow"))
val result = zonedDateTime.format(formatter)
println(result)

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

kotlinString "Europe/Moscow"

Пример

Парсинг строки с идентификатором зоны:

kotlinimport java.time.ZonedDateTime
import java.time.format.DateTimeFormatter

val builder = DateTimeFormatterBuilder()
val formatter = builder.appendZoneOrOffsetId().toFormatter()

val text = "2025-12-31T15:30:00Europe/Moscow"
val parsed = ZonedDateTime.parse(text, formatter)
println(parsed)

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

kotlinString "2025-12-31T15:30+03:00[Europe/Moscow]"

Пример

Использование с другими компонентами формата:

kotlinimport java.time.ZonedDateTime
import java.time.ZoneId
import java.time.format.DateTimeFormatter

val builder = DateTimeFormatterBuilder()
builder.appendPattern("yyyy-MM-dd HH:mm:ss ")
builder.appendZoneOrOffsetId()
val formatter = builder.toFormatter()

val zonedDateTime = ZonedDateTime.of(2025, 12, 31, 15, 30, 0, 0, ZoneId.of("UTC"))
val result = zonedDateTime.format(formatter)
println(result)

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

kotlinString "2025-12-31 15:30:00 UTC"

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

  • метод appendZoneId класса DateTimeFormatterBuilder,
    который добавляет только идентификатор зоны
  • метод appendOffset класса DateTimeFormatterBuilder,
    который добавляет только смещение времени
  • класс ZoneId,
    который представляет идентификатор часовой зоны
  • класс ZoneOffset,
    который представляет смещение времени от UTC