因为最近比较闲 有点不思进取 也没什么问题要写了

今天不错,发现一个,恩,感觉不错

做了一个上传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方法验证字符串是否是日期的问题相关推荐

  1. Linux格式化异常,Linux下DateFormat的parse方法出现”ParseException”异常

    在windows下使用DateFormat的parse方法,将字符中转化为Date类型时,一切正常.可安装到Linux下,就出现了ParseException异常.代码如下: public Date ...

  2. java 判断文件名合法_java用正则方法验证文件名是否合法

    Java中用到文件操作时,经常要验证文件名是否合法. 用File类的createNewFile()方法的确很管用.但当要批量验证时,效率上就会有问题.正则匹配的开销比创建文件少了很多. 那么一个合法的 ...

  3. Java学习笔记2:使用replaceAll()方法替换字符串中的反斜杠:左斜杠(\)和右斜杠(/)

    在编程过程中,需要将一个字符串中的反斜杠(\)全部替换成(\\),很简单的操作但是很容易报错. 比如:String filePath  =  "D:\daxiang\test\daxiang ...

  4. NumberUtils.isNumber()方法验证字符串是否为数字失败

    1.maven依赖 <dependency><groupId>org.apache.commons</groupId><artifactId>commo ...

  5. java压栈重复字符串_Java 实例 – 压栈出栈的方法实现字符串反转

    Java 实例 - 压栈出栈的方法实现字符串反转 以下实例演示了使用用户自定义的方法 StringReverserThroughStack() 来实现字符串反转: /* author by w3csc ...

  6. DateFormat类的format方法和parse方法

    package com.learn.demo03.DateFormat;import java.text.ParseException; import java.text.SimpleDateForm ...

  7. Java时间处理类SimpleDateFormat的parse和format方法的正确使用

    Java中怎么才能把日期转换成想要的格式呢,或把字符串转换成一定格式的日期,如把数据库中的日期或时间转换成自己想要的格式,JAVA中提供了SimpleDateFormat类可以实现. SimpleDa ...

  8. java的parse方法_Java即时类| parse()方法与示例

    java的parse方法 即时类parse()方法 (Instant Class parse() method) parse() method is available in java.time pa ...

  9. java json parser_Java JSONParser.parse方法代碼示例

    本文整理匯總了Java中org.json.simple.parser.JSONParser.parse方法的典型用法代碼示例.如果您正苦於以下問題:Java JSONParser.parse方法的具體 ...

最新文章

  1. 如何用工匠精神突破创新?
  2. find、sed、awk、grep命令总结
  3. ArrayMap java.lang.ArrayIndexOutOfBoundsException
  4. Windows计算机管理打不开提示程序未关联解决办法
  5. Jquery中attr与prop的区别
  6. 【项目实战】:Python 商铺地址分布数据分析
  7. python中for循环和while循环的区别_Python中for循环和while循环有什么区别?
  8. scanf———while(scanf (%lu,num) = =1)什么意思
  9. 深入浅出设计模式_深入浅出设计模式03接口隔离原则
  10. Linux内核源码树建立加载hello模块
  11. Struts2与Spring、Hibernate三者整合的过程示例
  12. python 入门学习
  13. JDBC与Mysql,Oracle数据类型之间的对应关系
  14. PHP弱类型安全问题总结
  15. phpstorm 常用快捷键及自定义快捷键
  16. YouTube热门视频的分析
  17. python因式分解算法_费马因式分解算法优化及素数判定
  18. Thread.currentThread()方法 Runnable
  19. Akm函数递归和非递归
  20. C++调用Python(混合编程)函数整理总结

热门文章

  1. Kotlin项目实践指南(上)
  2. 使用iText库创建PDF文件
  3. Java并发——线程间通信与同步技术
  4. Error: unterminated string literal。通常原因是输出字符str中包含换行符导致的。
  5. 从团购网的漏洞看网站安全性问题 -- 安全 -- IT技术博客大学习 -- 共学习 共进步!...
  6. 如何给邮件添加背景颜色
  7. varnish安装及简单配置
  8. 来了解下AbstractList
  9. sessionStorage 、localStorage 和 cookie 之间的区别
  10. idea如何打war包?(部署tomcat后具有class文件)