проверьте localdate на Java

Я получаю дату, которую хочу проверить, находится ли она в неправильном формате (дд / ММ / ГГГГ), я добавляю ошибку для отображения, зная, что моя дата имеет тип localDate. Я нашел много кода, как проверять строковые даты, но не localdate, если у кого-то есть идея: вот что я сделал на данный момент, и он возвращает все даты даже в правильном формате

LocalDate mydate;
final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/YYYY"); 
try {  
        String date = myDate.format(formatter);
        LocalDate.parse(date, formatter);
} 
catch (Exception e) { 
     errors.add(....));
} 
   

Спасибо


person maya    schedule 25.06.2020    source источник
comment
К вашему сведению: "dd/MM/YYYY" - шаблон неверного формата. Y - это недельный год, вы хотите u, который равен году, поэтому используйте "dd/MM/uuuu". См. документацию, т.е. javadoc для _ 5_.   -  person Andreas    schedule 25.06.2020
comment
Какие значения myDate вы тестировали? Вдобавок mydate - это не та же переменная, что и myDate, dразница, по общему признанию, не является очевидной.   -  person deHaar    schedule 25.06.2020
comment
Он возвращает все даты даже в правильном формате Что это означает? 1) Код ничего не возвращает. 2) Почему вы ожидаете, что он ничего не вернет для дат в правильном формате?   -  person Andreas    schedule 25.06.2020
comment
Возможно, вы неправильно понимаете, что такое объект LocalDate. Объект LocalDate - это объект, который представляет дату / месяц / год. У него нет формата; это просто значение даты. Нет смысла проверять, имеет ли объект LocalDate правильный формат - у него вообще нет формата. Вот почему вы не нашли кода для проверки LocalDate.   -  person Jesper    schedule 25.06.2020
comment
Отвечает ли это на ваш вопрос? Как проверить работоспособность даты в Java   -  person mohammedkhan    schedule 25.06.2020
comment
Пожалуйста, поясните, поскольку до сих пор я не мог понять ваш вопрос, извините. LocalDate всегда действителен, иначе вы не смогли бы его создать. И у LocalDate никогда не было никакого формата. См., Например, Как форматировать Объект LocalDate в MM / dd / yyyy и сохранит формат.   -  person Ole V.V.    schedule 25.06.2020
comment
Кстати, будьте осторожны с буквами шаблона формата. YYYY - это не то же самое, что yyyy, и первый, вероятно, преподнесет вам неприятные сюрпризы под Новый год. Проверьте документы, если не совсем Конечно.   -  person Ole V.V.    schedule 25.06.2020


Ответы (1)


Рассуждения кажутся круговыми.

У вас есть значение в LocalDate (я полагаю - хотя вы не показываете никакой инициализации или присвоения myDate).

Вы просите дату отформатировать себя как дд / мм / гггг.

Затем вы просите LocalDate проанализировать ту же строку, что и dd / mm / yyyy.

Я не понимаю, как любой из них может потерпеть неудачу. Преобразование в строку обязательно должно быть успешным, если LocalDate был успешно назначен. И, конечно же, будет работать синтаксический анализ того, что было только что отформатировано.

person user13784117    schedule 25.06.2020