Код: Выделить всё
String validInput = "2023-12-31";
String lenientInput = "2023-12-31 "; // Extra space
DateTimeFormatter strictFormatter = new DateTimeFormatterBuilder()
.appendPattern("yyyy-MM-dd")
.parseStrict()
.toFormatter();
DateTimeFormatter lenientFormatter = new DateTimeFormatterBuilder()
.appendPattern("yyyy-MM-dd")
.parseLenient()
.toFormatter();
LocalDate strictDate = LocalDate.parse(validInput, strictFormatter);
System.out.println("Strict: " + strictDate); //OK WORKS
LocalDate lenientDate = LocalDate.parse(lenientInput, lenientFormatter);
System.out.println("Lenient: " + lenientDate); // but Failed
Я пробовал много шаблонов и обнаружил, что «снисходительный» и «строгий», по-видимому, не имеют никакого значения. Что делает parseLenient() и какой шаблон я могу использовать, чтобы LocalDate.parse("2023-12-31", WhatFormatterToUseHere) анализировал 31 декабря 2023 года?
Подробнее здесь: https://stackoverflow.com/questions/790 ... ilder-java
Мобильная версия