校验时间问题
2014-01-15 21:26:43 java类里面如何校验用户输入是否是这种时间格式,用正则吗? 麻烦指点下
[解决办法]
/**
* 判断字符串是否是有效的日期, 格式"yyyy-MM-dd,yyyy-MM-d,yyyy-M-dd,yyyy-M-d
* "yyyy/MM/dd,yyyy/MM/d,yyyy/M/dd,yyyy/M/d" "yyyyMMdd"
*
* @param date
* 日期字符串
* @return 是则返回true,否则返回false
*/
public static boolean isValidDate(String date) {
if ((date == null)
[解决办法]
(date.length() < 8)) {
return false;
}
try {
boolean result = false;
SimpleDateFormat formatter;
char dateSpace = date.charAt(4);
String format[];
if ((dateSpace == '-')
[解决办法]
(dateSpace == '/')) {
format = new String[4];
String strDateSpace = Character.toString(dateSpace);
format[0] = "yyyy" + strDateSpace + "MM" + strDateSpace + "dd";
format[1] = "yyyy" + strDateSpace + "MM" + strDateSpace + "d";
format[2] = "yyyy" + strDateSpace + "M" + strDateSpace + "dd";
format[3] = "yyyy" + strDateSpace + "M" + strDateSpace + "d";
} else {
format = new String[1];
format[0] = "yyyyMMdd";
}
for (int i = 0; i < format.length; i++) {
String aFormat = format[i];
formatter = new SimpleDateFormat(aFormat);
formatter.setLenient(false);
String tmp = formatter.format(formatter.parse(date));
if (date.equals(tmp)) {
result = true;
break;
}
}
return result;
} catch (ParseException e) {
return false;
}
}
[解决办法]
直接用DateFormat的严格解析就是了
DateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
df.setLenient(true);//设置严格解析只要不是这个格式的都会报异常
try{
df.parse(你的时间字符串);
}catch(Exception e){
//异常就说明格式不符合
}