НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
1019 of 1310 menu

Метод parseCaseSensitive

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

Импорт

import java.time.format.DateTimeFormatterBuilder

Синтаксис

fun parseCaseSensitive(): DateTimeFormatterBuilder

Пример

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

val builder = DateTimeFormatterBuilder() val formatter = builder .parseCaseSensitive() .appendPattern("MMM yyyy") .toFormatter() val dateStr = "Jan 2025" val date = java.time.YearMonth.parse(dateStr, formatter) println(date)

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

String "2025-01"

Пример

Покажем разницу между чувствительным и нечувствительным к регистру парсингом:

val 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")

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

String "Sensitive Jan: JANUARY" String "Sensitive JAN failed: Text 'JAN' could not be parsed at index 0" String "Insensitive Jan: JANUARY" String "Insensitive JAN: JANUARY"

Пример

Комбинируем чувствительный и нечувствительный парсинг для разных частей даты:

val 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)

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

String "2025-01-05"

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

  • метод parseCaseInsensitive класса DateTimeFormatterBuilder,
    который устанавливает нечувствительный к регистру режим парсинга
  • метод appendPattern класса DateTimeFormatterBuilder,
    который добавляет шаблон для форматирования
  • метод toFormatter класса DateTimeFormatterBuilder,
    который завершает построение форматтера
  • класс DateTimeFormatter,
    который предоставляет методы для форматирования и парсинга дат
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить