По моему мнению, лучше проверять форматирование с помощью регулярного выражения, но проверять правильность с помощью кода (Java, в вашем случае). Было бы нелепо многословно пытаться проверять такие вещи, как разные дни в месяце и високосные годы, с помощью регулярного выражения.
Я предлагаю разобрать дату с помощью регулярного выражения, например ([0-9]{2})\\([0-9]{2})\\([0-9]{4})
, затем извлечь каждый фрагмент (dd
, mm
и yyyy
соответственно) и попытаться создать из них объект java.util.Date
.
Обратите внимание на следующее:
- Даты обычно пишутся с косой чертой (
/
), а не с обратной косой чертой (\
),
- В строках Java, чтобы написать символ обратной косой черты в регулярном выражении, вам фактически нужно будет написать
\\\\
для двух символов обратной косой черты (\\
). В Java-строках для записи обратной косой черты нам нужен escape-символ (который снова является \
).