关于日期格式处理的问题(检测环节比较复杂,可否实现)

lzhhua 2005-11-01 11:18:01
我现在编制一个程序,需要在文本框中输入日期格式的数字字符串,格式如:2005-11-1,然后点击按钮。请问:如何编写才能检测出我输入的这个日期是不是正确的呢?
不正确的情况如下:
1、输入了错误的字符串,如:2005-a0-10
2、输入的数字字符位数错误,如:205-11-1
3、输入的日期错误,如:2005-11-32,把11分输入了32天。
最后此检测程序还需要能正确识别以下格式:(输入以下都按正确检测)
2005-11-1 2005-11-01 2005-7-21 2005-07-21 2005-01-10 2005-1-1
希望高手能给编写一下,小弟不胜感激!
...全文
124 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
myhotsun 2005-11-01
  • 打赏
  • 举报
回复
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
* @author ww
*
* TODO To change the template for this generated type comment go to Window -
* Preferences - Java - Code Style - Code Templates
*/
public class DateUtil {
public static boolean isDate(String sDate, String sFmt) {
Date dt = null;
try {
DateFormat df = new SimpleDateFormat(sFmt);
df.setLenient(false);
dt = df.parse(sDate);
} catch (ParseException e) {
return false;
}
return true;
}

public static void main(String[] args) {
String df = "yyyy-MM-dd";
String date = "2001-2-29";
System.out.println(isDate(date, df));
}
}
gogon 2005-11-01
  • 打赏
  • 举报
回复
DateFormat可以设置为不宽容的

DateFormat d=new SimpleDateFormat("yyyy-MM-dd");
d.setLenient(false);
Date day=d.parse("2005-11-32");


这就会出错,
java.text.ParseException: Unparseable date: "2005-11-32"
捕捉这个异常就可以了
lzhhua 2005-11-01
  • 打赏
  • 举报
回复
大家快来帮忙啊
myhotsun 2005-11-01
  • 打赏
  • 举报
回复
什么鸟人,尽在这捣乱。
baiyunheng 2005-11-01
  • 打赏
  • 举报
回复
程序写得很好,但是当我输入:2005-0h-1j 之类的形式时,检测不到啊。该怎么办
believefym 2005-11-01
  • 打赏
  • 举报
回复
可以的,返回false
lzhhua 2005-11-01
  • 打赏
  • 举报
回复
程序写得很好,但是当我输入:2005-00-11 之类的形式时,检测不到啊。该怎么办

62,629

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧