我与模式yyyy-M-d"
构造SimpleDateFormat,并以下情形:java的SimpleDateFormat的行为
String str = "02-03-04";
SimpleDateFormat f = new SimpleDateFormat("yyyy-M-d");
f.setLenient(false);
System.out.println(f.parse(str));
输出是Sat Mar 04 00:00:00 EST 2
我的目标是只能望尘莫及日期在像2004-02-格式03并忽略02-03-04。我认为模式中的yyyy需要4位数的年份,但显然情况并非如此。任何人都可以解释为什么这不是抛出解析异常?我想它......
除此之外,正则表达式也应该工作(只是检查它匹配,然后使用解析器)。 – lijie 2010-12-10 15:51:52
我简化了这篇文章的问题。实际上,我有许多符合各种模式的日期格式。事后看来,也许正则表达式(或JODA时间)会更好......但这就是我现在所处的位置。 – 2010-12-10 15:53:26
如果它的东西是粘附的,那么我真的不能提出比使用正则表达式首先验证更好的方法(应该很容易为每个日期模式编写一个正则表达式,考虑到日期模式会捕获格式中的其他错误? )。 – lijie 2010-12-10 16:10:36