Метод parseCaseSensitive
Метод parseCaseSensitive класса DateTimeFormatterBuilder устанавливает чувствительный к регистру режим парсинга для последующих элементов форматтера.
Это означает, что при разборе текста регистр символов будет учитываться строго.
Метод возвращает тот же объект DateTimeFormatterBuilder для цепочки вызовов.
Импорт
kotlinimport java.time.format.DateTimeFormatterBuilder
Синтаксис
kotlinfun parseCaseSensitive(): DateTimeFormatterBuilder
Пример
Создадим форматтер с чувствительным к регистру парсингом для месяцев:
kotlinval builder = DateTimeFormatterBuilder()
val formatter = builder
.parseCaseSensitive()
.appendPattern("MMM yyyy")
.toFormatter()
val dateStr = "Jan 2025"
val date = java.time.YearMonth.parse(dateStr, formatter)
println(date)
Результат выполнения кода:
kotlinString "2025-01"
Пример
Покажем разницу между чувствительным и нечувствительным к регистру парсингом:
kotlinval sensitiveFormatter = DateTimeFormatterBuilder()
.parseCaseSensitive()
.appendPattern("MMM")
.toFormatter()
val insensitiveFormatter = DateTimeFormatterBuilder()
.parseCaseInsensitive()
.appendPattern("MMM")
.toFormatter()
val monthStr1 = "Jan"
val monthStr2 = "JAN"
try {
val month1 = java.time.Month.from(sensitiveFormatter.parse(monthStr1))
println("Sensitive Jan: $month1")
} catch (e: Exception) {
println("Sensitive Jan failed: ${e.message}")
}
try {
val month2 = java.time.Month.from(sensitiveFormatter.parse(monthStr2))
println("Sensitive JAN: $month2")
} catch (e: Exception) {
println("Sensitive JAN failed: ${e.message}")
}
val month3 = java.time.Month.from(insensitiveFormatter.parse(monthStr1))
val month4 = java.time.Month.from(insensitiveFormatter.parse(monthStr2))
println("Insensitive Jan: $month3")
println("Insensitive JAN: $month4")
Результат выполнения кода:
kotlinString "Sensitive Jan: JANUARY"
String "Sensitive JAN failed: Text 'JAN' could not be parsed at index 0"
String "Insensitive Jan: JANUARY"
String "Insensitive JAN: JANUARY"
Пример
Комбинируем чувствительный и нечувствительный парсинг для разных частей даты:
kotlinval customFormatter = DateTimeFormatterBuilder()
.parseCaseSensitive()
.appendPattern("EEE") // Чувствительные дни недели
.appendLiteral(' ')
.parseCaseInsensitive()
.appendPattern("MMM") // Нечувствительные месяцы
.appendLiteral(' ')
.appendPattern("yyyy")
.toFormatter()
val dateStr = "Mon jan 2025"
val date = java.time.LocalDate.parse(dateStr, customFormatter)
println(date)
Результат выполнения кода:
kotlinString "2025-01-05"
Смотрите также
-
метод
parseCaseInsensitiveклассаDateTimeFormatterBuilder,
который устанавливает нечувствительный к регистру режим парсинга -
метод
appendPatternклассаDateTimeFormatterBuilder,
который добавляет шаблон для форматирования -
метод
toFormatterклассаDateTimeFormatterBuilder,
который завершает построение форматтера -
класс
DateTimeFormatter,
который предоставляет методы для форматирования и парсинга дат