Метод parseCaseInsensitive

Метод parseCaseInsensitive класса DateTimeFormatterBuilder включает режим парсинга без учета регистра символов для создаваемого форматтера. Это позволяет парсить строковые представления дат и времени, игнорируя различия в верхнем и нижнем регистре.

Импорт

kotlinimport java.time.format.DateTimeFormatterBuilder

Синтаксис

kotlinfun parseCaseInsensitive(): DateTimeFormatterBuilder

Пример

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

kotlinval builder = DateTimeFormatterBuilder()
builder.parseCaseInsensitive()
builder.appendPattern("MMM yyyy")
val formatter = builder.toFormatter()

val dateStr = "jAn 2025"
val date = java.time.YearMonth.parse(dateStr, formatter)
println(date)

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

kotlinString "2025-01"

Пример

Парсинг названий дней недели в разных регистрах:

kotlinval builder = DateTimeFormatterBuilder()
builder.parseCaseInsensitive()
builder.appendPattern("EEE, dd MMM yyyy")
val formatter = builder.toFormatter()

val dateStr = "mOn, 15 Jul 2025"
val date = java.time.LocalDate.parse(dateStr, formatter)
println(date)

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

kotlinString "2025-07-15"

Пример

Сравнение парсинга с учетом и без учета регистра:

kotlinval caseSensitiveFormatter = DateTimeFormatterBuilder()
  .appendPattern("MMM yyyy")
  .toFormatter()

val caseInsensitiveFormatter = DateTimeFormatterBuilder()
  .parseCaseInsensitive()
  .appendPattern("MMM yyyy")
  .toFormatter()

val dateStr = "JAN 2025"

try {
  val date1 = java.time.YearMonth.parse(dateStr.toLowerCase(), caseSensitiveFormatter)
  println("Case sensitive: $date1")
} catch (e: Exception) {
  println("Case sensitive failed: ${e.message}")
}

val date2 = java.time.YearMonth.parse(dateStr, caseInsensitiveFormatter)
println("Case insensitive: $date2")

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

kotlinString "Case sensitive failed: Text 'jan 2025' could not be parsed at index 0"
String "Case insensitive: 2025-01"

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

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