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

Метод appendOffset

Метод appendOffset класса DateTimeFormatterBuilder добавляет поддержку смещения часового пояса (offset) в форматер. В первый параметр мы передаем паттерн для отображения смещения, во второй параметр мы передаем значение по умолчанию, которое будет использоваться при парсинге, если смещение не указано.

Импорт

import java.time.format.DateTimeFormatterBuilder

Синтаксис

fun appendOffset(pattern: String, noOffsetText: String): DateTimeFormatterBuilder

Пример

Создадим форматтер с поддержкой смещения часового пояса:

val formatter = DateTimeFormatterBuilder() .appendPattern("yyyy-MM-dd HH:mm:ss ") .appendOffset("+HH:MM", "Z") .toFormatter() val text = "2025-12-31 23:59:59 +03:00" val parsed = java.time.OffsetDateTime.parse(text, formatter) println(parsed)

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

String "2025-12-31T23:59:59+03:00"

Пример

Используем различные паттерны для форматирования смещения:

val formatter1 = DateTimeFormatterBuilder() .appendOffset("+HHMM", "Z") .toFormatter() val formatter2 = DateTimeFormatterBuilder() .appendOffset("+HH:MM", "Z") .toFormatter() val offset = java.time.ZoneOffset.ofHours(3) val time = java.time.OffsetTime.of(15, 30, 0, 0, offset) println(time.format(formatter1)) println(time.format(formatter2))

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

String "+0300" String "+03:00"

Пример

Парсинг строки со смещением часового пояса:

val formatter = DateTimeFormatterBuilder() .appendPattern("dd.MM.yyyy HH:mm:ss ") .appendOffset("+HHMM", "Z") .toFormatter() val text = "31.12.2025 23:59:59 +0300" val parsed = java.time.OffsetDateTime.parse(text, formatter) println(parsed) println(parsed.offset)

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

String "2025-12-31T23:59:59+03:00" String "+03:00"

Пример

Обработка случая, когда смещение не указано (используется значение по умолчанию):

val formatter = DateTimeFormatterBuilder() .appendPattern("yyyy-MM-dd HH:mm:ss ") .appendOffset("+HH:MM", "Z") .toFormatter() val text = "2025-12-31 23:59:59 Z" val parsed = java.time.OffsetDateTime.parse(text, formatter) println(parsed) println(parsed.offset)

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

String "2025-12-31T23:59:59Z" String "Z"

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

  • метод appendPattern класса DateTimeFormatterBuilder,
    который добавляет паттерн для форматирования даты и времени
  • метод appendZoneId класса DateTimeFormatterBuilder,
    который добавляет идентификатор часового пояса
  • класс ZoneOffset,
    который представляет смещение часового пояса
  • класс OffsetDateTime,
    который представляет дату и время со смещением
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить