Строка на дату (STRICT-преобразование)
Я создал следующую функцию, чтобы преобразовать строку в дату, но мне нужно отловить любую ошибку при этом и вернуть ноль.
public static Date toDateStarted(String dateStarted) {
Date dtStarted = null;
SimpleDateFormat dtFormat = new SimpleDateFormat("MM/dd/yyyy h:mm:ss a");
try {
dtStarted = dtFormat.parse(dateStarted);
} catch (ParseException e) {
dtStarted = null;
}
return dtStarted;
}
Date dtError = toDateStarted ("error / 7/1 4:44:44 PM");
Это вернуло ноль, как ожидалось.
Date dtWrong = toDateStarted ("2016/7/1 4:44:44 PM");
это вернуло неправильную дату "вт дек 07 16:44:44 EST 168"
В этом последнем и важном случае введенная дата "2016/7/1 16:44:44 PM" имеет неверный формат. Я прохожу 2016/7/1 вместо 01.07.2016, и поэтому я думал, что ParseException будет происходить, но никогда не происходило.
После ПОПЫТКИ... dtStarted = "Вт дек 07 16:44:44 ОЦЕНКА 168", и я получил его, как только вернулся.
Время правильное (16:44 = 4:44 вечера), однако Дата (год, месяц, день) совершенно неверна.
Мне нужно избегать какого-либо преобразования, если входная дата (dateStarted) не так СТРОГО, как в шаблоне SimpleDateFormat.
Что я должен делать? Оптимизации приветствуются.