package javaapplication1; import java.text.SimpleDateFormat; import java.util.Date; import java.util.regex.Pattern; /** * * @author yjmao * @version V1.0.0 * @date 2012-10-11 * @deprecated 开始时间和结束时间比较(正则表达式比较) */ public class checkDate { public static void main(String[] args){ String startTime = "2012/10/25 12:25:56"; String endTime = "2012-10-25 12:25:55"; String error = checkDateFlag(startTime,endTime); System.err.println(error); } public static String checkDateFlag(String startTime,String endTime){ StringBuilder year_mounth_date_hour_minute_second = new StringBuilder(); //[1-9]{1}[0-9]{3}:匹配年1000-9999 year_mounth_date_hour_minute_second.append("[1-9]{1}[0-9]{3}").append("-"); //([1-9]|[0]{1}[1-9]{1}|[1]{1}[0-2]{1})匹配月:1-12或01-12或 year_mounth_date_hour_minute_second.append("([1-9]|[0]{1}[1-9]{1}|[1]{1}[0-2]{1})").append("-"); //([1-9]|[0]{1}[1-9]{1}|[1-2]{1}[0-9]{1}|[3]{1}[0-1]{1})匹配日:1-31或01-31 year_mounth_date_hour_minute_second.append("([1-9]|[0]{1}[1-9]{1}|[1-2]{1}[0-9]{1}|[3]{1}[0-1]{1})").append("\\s*"); //([0-9]|[0-1]{1}[0-9]{1}|[2]{1}[0-3]{1}):匹配小时:00-23或0-23 year_mounth_date_hour_minute_second.append("([0-9]|[0-1]{1}[0-9]{1}|[2]{1}[0-3]{1}):"); //([0-9]|[0-5]{1}[0-9]{1}):匹配分钟:00-59或0-59 year_mounth_date_hour_minute_second.append("([0-9]|[0-5]{1}[0-9]{1}):"); //([0-9]|[0-5]{1}[0-9]{1}):匹配秒:00-59或0-59 year_mounth_date_hour_minute_second.append("([0-9]|[0-5]{1}[0-9]{1})"); //匹配的字符串 String regTime = year_mounth_date_hour_minute_second.toString(); StringBuilder errorInfo = new StringBuilder(); if(startTime.indexOf("/") != -1){ startTime = startTime.replace("/", "-"); } if(endTime.indexOf("/") != -1){ endTime = endTime.replace("/", "-"); } Pattern pattern = Pattern.compile(regTime); boolean startTimeFlag = pattern.matcher(startTime).matches(); boolean endTimeFlag = pattern.matcher(endTime).matches(); if(!startTimeFlag){ errorInfo.append("开始时间格式不正确!"); } if(!endTimeFlag){ errorInfo.append("结束时间格式不正确!"); } SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date startDate = null,endDate = null; try{ startDate = sdf.parse(startTime); endDate = sdf.parse(endTime); }catch(Exception e){} if(startDate.after(endDate)){ errorInfo.append("开始时间不能早于结束时间!"); } return errorInfo.toString(); } }