В настоящее время я пытаюсь разобрать даты (и времена), чтобы преобразовать их в миллисекунды с эпохи.Дата составления с подтверждением
Для этой цели я использую SimpleDateFormat для разбора с кодом, как это:
public static long parseDate(String date) {
// Parse
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd", Locale.US);
Date parsedDate = format.parse(date);
// Get milliseconds
Calendar cal = new GregorianCalendar();
cal.setTime(parsedDate);
return cal.getTimeInMillis();
}
Игра вокруг я обнаружил, что SimpleDateFormat действительно позволяет парсинг 1970-00-00 который разбирается в 1969-11-30. Думая об этом, это имеет смысл. Когда синтаксический анализатор просто «суммирует» все так, что 1969 год фактически понимается как «1969-11-30», а с 0 моментом «переполнение года» не происходит. К сожалению, я ничего не меняю, что эта дата недействительна (по крайней мере, так я понимаю даты).
Есть ли способ добавить валидацию, не используя сторонние библиотеки или java 8 (цель Android), или вам придется придерживаться регулярного выражения и проверки вручную?
Спасибо заранее!