Я хочу подтвердить дату в формате yyyy-MM-dd. Если я даю две цифры за год (т. Е. YY вместо YYYY), он не бросает никаких исключений, а 00 добавляется к формату даты при разборе даты.Дата Валидация формата не работает для yyyy-MM-dd
Я добавил setLenient(false);
, но все еще не проверяется правильно.
Может ли кто-нибудь помочь мне в этом?
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
formatter.setLenient(false);
try {
Date date = (Date)formatter.parse("15-05-30"); //In this line year is getting appened with 00 and becomes 0015
reciptDate = dateFormat.format(date);
} catch (ParseException pe) {
return false;
}
А почему вы просто не разобрать ' "2015-05-30" '? Есть ли причина, по которой вам нужен другой «SimpleDateFormat», чем тот, который вам действительно нужен? – LordAnomander
Мы хотим сделать какое-то исключение в случае, если формат не совпадает с yyyy-MM-dd – kana
http://stackoverflow.com/questions/18534343/why-simpledateformatmm-dd-yyyy-parses-date-to-10- 20-20128 Посмотрите эту ссылку. Вероятно, вы должны определить дополнительную проверку, если год меньше, чем, скажем, 2000. Кроме того, 15 - действительное число в течение года. – LordAnomander