java中如何验证2005-04-18这样的日期格式,请高手指教!!! 使用一个SimpleDateFormat对象parse一下,如果失败,会返回null。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 第一步,使用String的matches方法初步验证是否符合pattern:"\\d{4}-\\d{2}-\\d{2}"。然后,使用一个SimpleDataFormat对象parse一下,如果失败,会返回NULL。 楼上的办法检测不出来2005-04-31这样的日期(会parse为2005.5.1)给个办法供参考 /** * 检查日期合法性 * @param s String * @return boolean */ public static boolean checkDate(String s) { boolean ret = true; try { DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); ret = df.format(df.parse(s)).equals(s); } catch (ParseException e) { ret = false; } return ret; } 啊?这样啊。Java类库也太不厚道了,4月31日就是5月一日,寒一个。-_- DateFormat类有个方法setLenient,默认是true,要是设置成false的话不出出现“4月31日就是5月一日”的问题了,因为SimpleDataFormat从DateFormat继承的,所以SimpleDataFormat也可以用这个方法 楼上说的不错,以前没注意过这个函数,学习。 DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); df.setLenient(false); df.parse(s); 关于矩阵相乘输入及结果 SSH购物车 求大神代码反编译 java main函数 调用外部类的方法(大虾)?? 非常急 ----jdbc sqlserver2008 求邮箱系统源代码 Applet或JApplet的大小怎么不能设置 Jar 应用程序反编译成.java文件有什么办法吗? 怎样在jbuilder3的菜单编辑器中,使菜单显示中文??? 请教数据类型的问题 求救<关于Socket与计时器> 怎样在JAVA中直接调用WINDOWS 本地的 FileChooser, Swing 自带的那个又丑又慢,还不能连接共享计算机文件夹
然后,使用一个SimpleDataFormat对象parse一下,如果失败,会返回NULL。
给个办法供参考
/**
* 检查日期合法性
* @param s String
* @return boolean
*/
public static boolean checkDate(String s) {
boolean ret = true;
try {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
ret = df.format(df.parse(s)).equals(s);
}
catch (ParseException e) {
ret = false;
}
return ret;
}
Java类库也太不厚道了,4月31日就是5月一日,寒一个。-_-
df.setLenient(false);
df.parse(s);