Метод 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
,
который форматирует и парсит даты и времена