Checking if a String represents a valid usually means parsing that String into a Date. There are several threads about that; I've posted in quite a few of these already.
And what Paul meant is disallowing invalid dates like February 31st. You can make the date format non-lenient to disallow this.