Метод parseStrict
Метод parseStrict класса DateTimeFormatterBuilder переключает парсер в строгий режим, при котором входная строка должна точно соответствовать указанному формату. В отличие от режима по умолчанию, строгий парсинг не допускает неявных значений и требует полного соответствия всех компонентов даты и времени.
Импорт
import java.time.format.DateTimeFormatterBuilder
Синтаксис
fun parseStrict(): DateTimeFormatterBuilder
Пример
Создадим форматтер со строгим парсингом для даты в формате день/месяц/год:
val formatter = DateTimeFormatterBuilder()
.appendPattern("dd/MM/yyyy")
.parseStrict()
.toFormatter()
val dateStr = "31/12/2025"
val date = java.time.LocalDate.parse(dateStr, formatter)
println(date)
Результат выполнения кода:
String "2025-12-31"
Пример
Попробуем распарсить неполную дату в строгом режиме:
val formatter = DateTimeFormatterBuilder()
.appendPattern("dd/MM/yyyy")
.parseStrict()
.toFormatter()
val dateStr = "31/12/25"
try {
val date = java.time.LocalDate.parse(dateStr, formatter)
println(date)
} catch (e: Exception) {
println("Error: " + e.message)
}
Результат выполнения кода:
String "Error: Text '31/12/25' could not be parsed at index 6"
Пример
Сравнение строгого и нестрогого парсинга:
val strictFormatter = DateTimeFormatterBuilder()
.appendPattern("dd/MM/yyyy")
.parseStrict()
.toFormatter()
val lenientFormatter = DateTimeFormatterBuilder()
.appendPattern("dd/MM/yyyy")
.parseLenient()
.toFormatter()
val dateStr = "31/12/25"
try {
val strictDate = java.time.LocalDate.parse(dateStr, strictFormatter)
println("Strict: " + strictDate)
} catch (e: Exception) {
println("Strict error: " + e.message)
}
try {
val lenientDate = java.time.LocalDate.parse(dateStr, lenientFormatter)
println("Lenient: " + lenientDate)
} catch (e: Exception) {
println("Lenient error: " + e.message)
}
Результат выполнения кода:
String "Strict error: Text '31/12/25' could not be parsed at index 6"
String "Lenient: 0025-12-31"
Пример
Строгий парсинг даты и времени:
val formatter = DateTimeFormatterBuilder()
.appendPattern("dd.MM.yyyy HH:mm:ss")
.parseStrict()
.toFormatter()
val dateTimeStr = "15.07.2025 14:30:00"
val dateTime = java.time.LocalDateTime.parse(dateTimeStr, formatter)
println(dateTime)
Результат выполнения кода:
String "2025-07-15T14:30:00"
Смотрите также
-
метод
parseLenientклассаDateTimeFormatterBuilder,
который устанавливает нестрогий режим парсинга -
метод
appendPatternклассаDateTimeFormatterBuilder,
который добавляет шаблон форматирования -
метод
toFormatterклассаDateTimeFormatterBuilder,
который создает объект DateTimeFormatter -
класс
DateTimeFormatter,
который предоставляет методы для форматирования и парсинга дат