正则表达式,好象是JDK1。4支持吧
解决方案 »
- 这两程序的结果为何不一样??
- 怎么把ResultSet 中的内容放入JTable组件中...在线等 谢谢高人指点
- 用Winsock抓Java写的服务端的程序发送和接收的包,应该监视哪个进程???
- java中内存的使用
- boolean+boolean
- 请教一个简单问题
- 有没有可能通过某种变通对一个没有实现Serializable接口的类进行串行化?
- who has java库 这本书啊 电子版!!!!!!!
- 在java JFrame里面动态改变菜单怎么要手工调整一下窗体大小才能正确显示呢?
- 哪里有VisualAge for Java 4.0下载,有效连接给分,谢了!
- 一些关于串口通讯的问题,希望有人帮我解答
- installanywhere的问题
sdf.parse(startDate);
try{
df.parse(startDate);//抛异常就不是正确格式
}catch(){}
Pattern p=Pattern.compile("[1-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]");
Matcher m=p.matcher(startDate);
if(!m.find()){
//错误
}
SimpleDateFormat 方法不能保证输入的确实是日期,比如:1999-00-01就不能检测出来
正则表达式不能在JDK1.2上使用,而且SCO UNIX 的JDK好象只有1.2版本的???
怎么验证是合法日期呀??
java.text.SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try
{
if(s.equals(sdf.format(sdf.parse(s)))
//格式正确;
else
//格式不正确;
}
catch(ParseException e)
{
//格式不正确;
}
SimpleDateFormat的函数只能作第一种判断。如果不用正则表达式的话还是自己写函数吧。
String sDate = "****-**-**";
// 判断形式
try {
if ( (sDate.indexOf("-") == 5) && (sDate.lastIndexOf("-") == 8)) {
// 形式符合要求,判断是否为日期
Calendar calendar = Calendar.getInstance();
Calendar.setLenient( false );
Calendar.set(Integer.parseInt(sDate.substring(0, 4)),
Integer.parseInt(sDate.substring(5, 7)) - 1,// 月份比较特别,要-1才能得到相应的月
Integer.parseInt(sDate.substring(8, 10)));
Date dt = calendar.getTime();
return true;
} else {
// 形式不符合要求
return false;
}
} catch (Exception e) {
// 非日期
return false;
}