Monday, February 18, 2008

Check if a String is a valid date

This example checks if a String is a valid date by parsing the String with an instance of the SimpleDateFormat class and returns true or false.
import java.text.SimpleDateFormat;
import java.text.ParseException;

public class DateTest {

  public boolean isValidDate(String inDate) {

    if (inDate == null)
      return false;

    //set the format to use as a constructor argument
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
    
    if (inDate.trim().length() != dateFormat.toPattern().length())
      return false;

    dateFormat.setLenient(false);
    
    try {
      //parse the inDate parameter
      dateFormat.parse(inDate.trim());
    }
    catch (ParseException pe) {
      return false;
    }
    return true;
  }

  public static void main(String[] args) {

    DateTest test = new DateTest();

    System.out.println(test.isValidDate("2004-02-29"));
    System.out.println(test.isValidDate("2005-02-29"));
  }
}
The output will be...
true
false

...since the year 2004 was a leap year.
 
Blogger Template Layout Design by [ METAMUSE ] : Code Name Gadget 1.1 Power By freecode-frecode.blogger.com & blogger.com Programming Blogs - BlogCatalog Blog Directory