使用日期格式验证日期[重复](validating a date using dateformat

2019-07-02 13:22发布

这个问题已经在这里有一个答案:

  • 让SimpleDateFormat.parse()上的无效日期失败(如一个月大于12) 3个回答

我试图验证日期,实际上是一个字符串,试图将其打印在yyyy/MM/dd格式。 下面是代码。

String s="2012/12/0390990";
SimpleDateFormat ft = new SimpleDateFormat("yyyy/MM/dd");
System.out.println(ft.format(ft.parse(s))); 

且输出为3083/05/30 。 我想有验证过。 不知道如何着手。

Answer 1:

这是默认宽松。 您需要设置非宽松的解析之前。

ft.setLenient(false);

这将导致一个ParseException ,当一个无效的日期和/或月份进行比较,以年为供应。 请注意,这不验证当年自己作为基本任意数量的年有效。 根据具体功能要求,你可能想要做上一年额外的检查,例如,分串/并检查是否第1部分的长度为4。



Answer 2:

您可以更好地使用正规验证输入,
见例如这样的回答:
https://stackoverflow.com/a/2149692/1448704

塞巴斯蒂安



文章来源: validating a date using dateformat [duplicate]