ParseStrict() против parseLenient() DateTimeFormatterBuilder JavaJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 ParseStrict() против parseLenient() DateTimeFormatterBuilder Java

Сообщение Anonymous »

Дано:
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

Я не могу понять точную разницу между parseStrict() и parseLenient().
Я пробовал много шаблонов и обнаружил, что «снисходительный» и «строгий», по-видимому, не имеют никакого значения. Что делает parseLenient() и какой шаблон я могу использовать, чтобы LocalDate.parse("2023-12-31 ",whatFormatterToUseHere) анализировал 31 декабря 2023 года?
РЕДАКТИРОВАТЬ:-
DateTimeFormatterBuilder dfb=new DateTimeFormatterBuilder();
dfb.parseLenient();
dfb.appendPattern("MMyydd");
String s="092430";
System.out.println(dfb.toFormatter().parse(s));

Почему я получаю
java.time.format.DateTimeParseException: Text '092430' could not be parsed at index 6


Подробнее здесь: https://stackoverflow.com/questions/790 ... ilder-java
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»