2016-10-13 2 views
1

В приведенном ниже фрагменте кода должно быть исключение синтаксического анализа в соответствии с моим пониманием, но это не так. Посмотрел документацию, но не мог понять.Синтаксический разбор даты не работает с недопустимым форматом

DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd", Locale.US); 
dateFormat.setLenient(false); 
dateFormat.parse("20160821_$folder$"); 
+0

Если вы используете Java 8, вы можете использовать строковый DateTimeFormatter и вызывать исключение в вашем примере. – assylias

ответ

2

Это то, что javadoc говорит:

Анализирует текст с начала данной строки для получения даты. Метод может не использовать весь текст данной строки.

До тех пор, пока он находит совпадение, он останавливает сканирование дальше, что, кажется, имеет место здесь.

Если вы хотите выполнить строгую проверку, вы можете добавить mathing поверх этого, чтобы эти строки не обрабатывались.

+0

Это объясняет это. Интересно, почему они не используют фальшивый снимок. Но поскольку это документировано, это не ошибка. –

Смежные вопросы