Мне нужно проверить строки, если они содержат действительный ввод даты.Для этого я создал метод
public static Date validateDateFormat(final String expectedDateFormat, final String dateToValdate) {
DateTimeFormatter formatter = DateTimeFormat.forPattern(expectedDateFormat);
DateTime dt = null;
try {
dt = formatter.parseDateTime(dateToValdate);
} catch (Exception e) {
log.error("cannot parse {0} to format {1}", dateToValdate, expectedDateFormat);
}
if (dt != null) {
return dt.toDate();
}
else {
return null;
}
}
С этими значениями он не возвращает ноль, как ожидалось.Строка будет преобразована в DateTime со значением 0018-12-18T00: 00: 00.000 + 00: 53: 28, есть ли способ изменить это поведение?Я думаю, что если формат не верный, он потерпит неудачу.
Вот мой тест
@Test
public void checkFormat6() {
String date = "18.12.18";
String expectedFormat = "dd.MM.yyyy";
assertNull(DateFormatChecker.validateDateFormat(expectedFormat, date));
}
Мне нужно использовать JDK 7 и использовать joda-time 2.10