java sdf.parse_用DateFormat的parse方法验证字符串是否是日期的问题
因为最近比较闲 有点不思进取 也没什么问题要写了
今天不错,发现一个,恩,感觉不错
做了一个上传Excel并解析数据然后入库的功能,里面涉及到是否是日期格式的判断
之前是这么写的(深谙这么写是不好的,但以为它是可靠的)
private boolean checkDate(String content) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
sdf.parse(content);
return true;
} catch (Exception e){
return false;
}
}
现在发现问题了,对于“2008-06-23asdf”这种情况是返回true的,哈哈,看来是孤陋寡闻了,基础不扎实了,看API上这样讲:
在默认情况下,进行的分析是不严格的:如果输入的形式不是此对象的格式化方法使用的形式,但仍可作为日期进行分析,则分析将获得成功。客户机可能通过调用 setLenient(false) 来强调严格遵守该格式。
按照API说法,将代码改成
private boolean checkDate(String content) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
sdf.setLenient(false);
sdf.parse(content);
return true;
} catch (Exception e){
return false;
}
}
运行结果“2008-06-23asdf”这种情况还是返回true的,但“2008-13-23”这种情况是返回false的
最后改进程这种写法,可以适应"yyyy-MM-dd""yyyy-M-d""yyyy-MM-d""yyyy-M-dd"
private boolean checkDate(String content) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-M-d");
try {
sdf.setLenient(false);
content = content.replaceAll("-0", "-");
Date d = sdf.parse(content);
String s = sdf.format(d);
return content.equals(s);
} catch (Exception e){
return false;
}
}
参考资料http://www.99inf.net/SoftwareDev/Java/52734.htm
http://blog.163.com/everlee@126/blog/static/263574220089822631229/
当然也可以用正则表达式做到。
posted on 2009-07-13 17:11 猪 阅读(1943) 评论(1) 编辑 收藏 所属分类: 学习java
java sdf.parse_用DateFormat的parse方法验证字符串是否是日期的问题相关推荐
- Linux格式化异常,Linux下DateFormat的parse方法出现”ParseException”异常
在windows下使用DateFormat的parse方法,将字符中转化为Date类型时,一切正常.可安装到Linux下,就出现了ParseException异常.代码如下: public Date ...
- java 判断文件名合法_java用正则方法验证文件名是否合法
Java中用到文件操作时,经常要验证文件名是否合法. 用File类的createNewFile()方法的确很管用.但当要批量验证时,效率上就会有问题.正则匹配的开销比创建文件少了很多. 那么一个合法的 ...
- Java学习笔记2:使用replaceAll()方法替换字符串中的反斜杠:左斜杠(\)和右斜杠(/)
在编程过程中,需要将一个字符串中的反斜杠(\)全部替换成(\\),很简单的操作但是很容易报错. 比如:String filePath = "D:\daxiang\test\daxiang ...
- NumberUtils.isNumber()方法验证字符串是否为数字失败
1.maven依赖 <dependency><groupId>org.apache.commons</groupId><artifactId>commo ...
- java压栈重复字符串_Java 实例 – 压栈出栈的方法实现字符串反转
Java 实例 - 压栈出栈的方法实现字符串反转 以下实例演示了使用用户自定义的方法 StringReverserThroughStack() 来实现字符串反转: /* author by w3csc ...
- DateFormat类的format方法和parse方法
package com.learn.demo03.DateFormat;import java.text.ParseException; import java.text.SimpleDateForm ...
- Java时间处理类SimpleDateFormat的parse和format方法的正确使用
Java中怎么才能把日期转换成想要的格式呢,或把字符串转换成一定格式的日期,如把数据库中的日期或时间转换成自己想要的格式,JAVA中提供了SimpleDateFormat类可以实现. SimpleDa ...
- java的parse方法_Java即时类| parse()方法与示例
java的parse方法 即时类parse()方法 (Instant Class parse() method) parse() method is available in java.time pa ...
- java json parser_Java JSONParser.parse方法代碼示例
本文整理匯總了Java中org.json.simple.parser.JSONParser.parse方法的典型用法代碼示例.如果您正苦於以下問題:Java JSONParser.parse方法的具體 ...
最新文章
- 如何用工匠精神突破创新?
- find、sed、awk、grep命令总结
- ArrayMap java.lang.ArrayIndexOutOfBoundsException
- Windows计算机管理打不开提示程序未关联解决办法
- Jquery中attr与prop的区别
- 【项目实战】:Python 商铺地址分布数据分析
- python中for循环和while循环的区别_Python中for循环和while循环有什么区别?
- scanf———while(scanf (%lu,num) = =1)什么意思
- 深入浅出设计模式_深入浅出设计模式03接口隔离原则
- Linux内核源码树建立加载hello模块
- Struts2与Spring、Hibernate三者整合的过程示例
- python 入门学习
- JDBC与Mysql,Oracle数据类型之间的对应关系
- PHP弱类型安全问题总结
- phpstorm 常用快捷键及自定义快捷键
- YouTube热门视频的分析
- python因式分解算法_费马因式分解算法优化及素数判定
- Thread.currentThread()方法 Runnable
- Akm函数递归和非递归
- C++调用Python(混合编程)函数整理总结
热门文章
- Kotlin项目实践指南(上)
- 使用iText库创建PDF文件
- Java并发——线程间通信与同步技术
- Error: unterminated string literal。通常原因是输出字符str中包含换行符导致的。
- 从团购网的漏洞看网站安全性问题 -- 安全 -- IT技术博客大学习 -- 共学习 共进步!...
- 如何给邮件添加背景颜色
- varnish安装及简单配置
- 来了解下AbstractList
- sessionStorage 、localStorage 和 cookie 之间的区别
- idea如何打war包?(部署tomcat后具有class文件)