Запись на курсы по HTML, CSS, JavaScript, PHP, Python, фреймворкам и CMS,
а также: помощь в поиске работы и заказов, стажировка на реальных проектах→
1023 of 1310 menu
Новый формат обучения! Репетиторство по программированию. Есть еще 3 свободных места! Жми для подробностей.

Метод optionalEnd

Метод optionalEnd класса DateTimeFormatterBuilder завершает необязательную секцию, начатую методом optionalStart. Все элементы форматтера, добавленные между optionalStart и optionalEnd, будут считаться необязательными при парсинге строк.

Импорт

import java.time.format.DateTimeFormatterBuilder

Синтаксис

fun optionalEnd(): DateTimeFormatterBuilder

Пример

Создадим форматтер с необязательной временной частью:

val builder = DateTimeFormatterBuilder() builder.appendPattern("yyyy-MM-dd") builder.optionalStart() builder.appendPattern(" HH:mm:ss") builder.optionalEnd() val formatter = builder.toFormatter() val dateTime1 = formatter.parse("2025-12-31 15:30:45") val dateTime2 = formatter.parse("2025-12-31") println(dateTime1) println(dateTime2)

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

String "{Year=2025, Month=12, Day=31, Hour=15, Minute=30, Second=45}" String "{Year=2025, Month=12, Day=31}"

Пример

Создадим форматтер с необязательными секундами:

val builder = DateTimeFormatterBuilder() builder.appendPattern("HH:mm") builder.optionalStart() builder.appendPattern(":ss") builder.optionalEnd() val formatter = builder.toFormatter() val time1 = formatter.parse("15:30:45") val time2 = formatter.parse("15:30") println(time1) println(time2)

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

String "{Hour=15, Minute=30, Second=45}" String "{Hour=15, Minute=30}"

Пример

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

val builder = DateTimeFormatterBuilder() builder.appendPattern("yyyy-MM-dd") builder.optionalStart() builder.appendPattern("'T'HH:mm:ss") builder.optionalStart() builder.appendPattern(" XXX") builder.optionalEnd() builder.optionalEnd() val formatter = builder.toFormatter() val date1 = formatter.parse("2025-12-31T15:30:45+03:00") val date2 = formatter.parse("2025-12-31T15:30:45") val date3 = formatter.parse("2025-12-31") println(date1) println(date2) println(date3)

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

String "{Year=2025, Month=12, Day=31, Hour=15, Minute=30, Second=45, OffsetSeconds=10800}" String "{Year=2025, Month=12, Day=31, Hour=15, Minute=30, Second=45}" String "{Year=2025, Month=12, Day=31}"

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

  • метод optionalStart класса DateTimeFormatterBuilder,
    который начинает необязательную секцию
  • метод appendPattern класса DateTimeFormatterBuilder,
    который добавляет шаблон к форматтеру
  • метод toFormatter класса DateTimeFormatterBuilder,
    который создает форматтер из билдера
  • класс DateTimeFormatter,
    который форматирует и парсит даты и времена