public static boolean isDate(String strDate) {
        boolean blnResult = false;
        log.debug(String.format("method start String[strDate:%s]", strDate));
        if (strDate != null) {
            StringBuilder strRegex = new StringBuilder(100);
            
            //日期匹配，格式范围为：1600-01-01 => 9999-12-31
            strRegex.append("^((((1[6-9]|[2-9]\\d)\\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\\d|3[01]))|(((1[6-9]|[2-9]\\d)\\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\\d|30))|(((1[6-9]|[2-9]\\d)\\d{2})-0?2-(0?[1-9]|1\\d|2[0-8]))|(((1[6-9]|[2-9]\\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))");
            
            //时间匹配，格式范围为： 00:00:00 => 23:59:59
            strRegex.append("(\\s(((0?[0-9])|(1[0-9])|(2[0-3]))\\:([0-5]?[0-9])((\\s)|(\\:([0-5]?[0-9])))))?$");
            int intOption = Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE | Pattern.MULTILINE | Pattern.COMMENTS;
            Pattern pattern = Pattern.compile(strRegex.toString(), intOption);
            blnResult = pattern.matcher(strDate).matches();
        }
        log.debug(String.format("method stop return:boolean[%s]", blnResult));
        return blnResult;
    }