需要自己判断,如果要求不严格的话可以用正则表达式
\d{4}-[01]?\d-[0123]?\d
\d{4}-[01]?\d-[0123]?\d
解决方案 »
- 又是java.lang.NullPointerException
- JAVA接收python函数返回数据
- 菜鸟请进---java初学者项目实践
- 输入两个整数(N>0)输出其代数和
- 忘了在哪个区看到的问题了,自己写了一个java的答案,请各位达人指教
- 怎么样用java编写以桌面为根目录的树结构?
- 求助.关于InputStream类的int read(byte buffer[])的异常问题!
- 请教ant中fileset的设置问题
- 一个关于package的初级问题
- JAVA中APPLET的背景如何透明处理?
- 请问一下java中的两个关键字是怎么回事,native 和transient,谢谢
- 关于JComboBox的一个问题
private static SimpleDateFormat dateFormat = new SimpleDateFormat();
public static boolean isValidDate(String dateString, String dateFormatPattern) {
Date validDate = null;
synchronized (dateFormat) {
try {
dateFormat.applyPattern(dateFormatPattern);
dateFormat.setLenient(false);
validDate = dateFormat.parse(dateString);
}
catch (ParseException e) {
// Ignore and return null
}
}
return validDate != null;
}
String date = "1981-2-21";
Pattern p = Pattern.compile("\\d{4}-\\d{1,2}-\\d{1,2}");
Matcher m = p.matcher(date);
boolean b = m.matches();
System.out.println(b);
这个是可以通过的,但是32并不是合法的日期。
必须要手工判断闰年,哪个月有几天吗?为什么标准库不提供一个方法呢?
dateFormat.setLenient(false);这一句是设置严格与否。不过使用异常来判断到底是不是体面,我还是心有余悸。