Java为了支持多语言,没有固定的日期格式。你需要根据自己的需要指定日期格式,然后用DateFormat类或者SimpleDateFormat类来判断是否是正确的日期格式。
。今天编写JSF程序,需要自定义一个校验器,判断用户输入的字符串是否为系统提示的要求。
例如:现在需要输入某年、某月(yyyy-MMMM)的格式。
/*****其他代码省略**/public boolean isValidDate(String s){try {// 指定日期格式为四位年/两位月份/两位日期,注意yyyy-MM-dd其中MM为大写SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-mm");// 设置lenient为false. 否则SimpleDateFormat会比较宽松地验证日期,比如/02/29会被接受,并转换成/03/01dateFormat.setLenient(false);dateFormat.parse(s);return true;}catch (Exception e) {// 如果throw java.text.ParseException或者NullPointerException,就说明格式不对return false;}}public void validateDayRange(FacesContext context,UIComponent toValidate,Object value){String temp = (String) value;if(isValidDate(temp)==false){FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,"Unvalidated Input","Unvalidated Input");throw new ValidatorException(message);}}/**********/