How do I check if a string is a valid date?

The following code can be use to validate if a string contains a valid date information. The pattern of the date is defined by the java.text.SimpleDateFormat object. When the date is not valid a java.text.ParseException will be thrown.

package org.kodejava.example.text;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.text.ParseException;

public class DateValidation {
    public static void main(String[] args) {
        DateFormat format = new SimpleDateFormat("dd/MM/yyyy");

        // Input to be parsed should strictly follow the defined date format
        // above.
        format.setLenient(false);

        String date = "29/18/2017";
        try {
            format.parse(date);
        } catch (ParseException e) {
            System.out.println("Date " + date + " is not valid according to " +
                ((SimpleDateFormat) format).toPattern() + " pattern.");
        }
    }
}

The result of the above date validation code is:

Date 29/18/2017 is not valid according to dd/MM/yyyy pattern.

1 Comments

  1. When i tested this code, i found that it was accepting the input “22/10/20” which ideally it shouldn’t because the year is not a 4 digit number

    Reply

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.