81,091
社区成员
发帖
与我相关
我的任务
分享
public class ParseDate {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
parse("2007-09-31");
}
public static void parse(String str)
{
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
sdf.parse(str);
} catch (ParseException e) {
// TODO Auto-generated catch block
// e.printStackTrace();
System.out.println("不符合");
}
System.out.println(sdf.toPattern());
}
}
public static void dateMatch2(String date) {
String ss = "(?:[0-9]{1,4}(?<!^0?0?0?0))-(?:0?[1-9]|1[0-2])-(?:0?[1-9]|1[0-9]|2[0-8]|"
+ "(?:(?<=-(?:0?[13578]|1[02])-)(?:29|3[01]))|(?:(?<=-(?:0?[469]|11)-)(?:29|30))|"
+ "(?:(?<=(?:(?:[0-9]{0,2}(?!0?0)(?:[02468]?(?<![13579])[048]|[13579][26]))|"
+ "(?:(?:[02468]?[048]|[13579][26])00))-0?2-)(?:29)))";
System.out.println("dateMatch2 = [" + date + "] = [" + date.matches(ss)
+ "]");
}
如果用java验证,直接将该字符串进行转换Date类型;
如果没有异常就是正确的时间格式,如果出现异常就是错误的时间格式;
也可以用java中正则;
//作用:判断日期是否合法,能够有效的验证闰年,支持的日期格式有:2009-01-01、2009/01/01两种格式
//参数:dateValue
function IsDate(dateValue) {
var regex = new RegExp("^(?:(?:([0-9]{4}(-|\/)(?:(?:0?[1,3-9]|1[0-2])(-|\/)(?:29|30)|((?:0?[13578]|1[02])(-|\/)31)))|([0-9]{4}(-|\/)(?:0?[1-9]|1[0-2])(-|\/)(?:0?[1-9]|1\\d|2[0-8]))|(((?:(\\d\\d(?:0[48]|[2468][048]|[13579][26]))|(?:0[48]00|[2468][048]00|[13579][26]00))(-|\/)0?2(-|\/)29))))$");
if (!regex.test(dateValue))
return false;
else
return true;
}
可以参考:http://blog.csdn.net/IBM_hoojo/archive/2010/06/01/5639490.aspx
String inStr = "2007-09-31a";
Pattern p1 = Pattern.compile("\\d{4}-\\d{2}-\\d{2}");
Pattern p2 = Pattern.compile("\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}");
DateFormat f1 = new SimpleDateFormat("yyyy-MM-dd");
DateFormat f2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if (p1.matcher(inStr).matches()) {
try {
f1.parse(inStr);
//匹配 yyyy-MM-dd
}
catch (ParseException exp) {
//不匹配 yyyy-MM-dd
}
}
else if (p2.matcher(inStr).matches()) {
try {
f2.parse(inStr);
//匹配 yyyy-MM-dd HH:mm:ss
}
catch (ParseException exp) {
//不匹配 yyyy-MM-dd HH:mm:ss
}
}
else {
//不匹配任何一种
}