Here you can find the source of isDate(String dateStr, String dateFormat)
public static boolean isDate(String dateStr, String dateFormat)
//package com.java2s; //License from project: Apache License import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { private static final String dateRegx = "^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\\s(((0?[0-9])|([1-2][0-3]))\\:([0-5]?[0-9])((\\s)|(\\:([0-5]?[0-9])))))?$"; public static String yyyyMMddSplit = "yyyy-MM-dd"; public static boolean isDate(String dateStr) { Pattern pattern = Pattern.compile(dateRegx); Matcher matcher = pattern.matcher(dateStr); return matcher.matches(); }// www . ja va2 s .co m public static boolean isDate(String dateStr, String dateFormat) { boolean isDate = true; Pattern pattern = Pattern.compile(dateRegx); Matcher matcher = pattern.matcher(dateStr); if (matcher.matches()) { try { stringToDate(dateStr, dateFormat); } catch (Exception e) { isDate = false; } } else { isDate = false; } return isDate; } public static Date stringToDate(String dateStr) throws ParseException { SimpleDateFormat formater = new SimpleDateFormat(yyyyMMddSplit); Date date = formater.parse(dateStr); return date; } public static Date stringToDate(String dateStr, String format) throws ParseException { SimpleDateFormat formater = new SimpleDateFormat(format); Date date = formater.parse(dateStr); return date; } }