使用dateformat验证日期

时间:2012-10-24 20:46:42

标签: java date-format

我正在尝试验证实际上是字符串的日期,尝试以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。我也希望得到验证。不知道如何继续。

2 个答案:

答案 0 :(得分:5)

默认是宽松的。您需要在解析之前将其设置为non-lenient

ft.setLenient(false);

与年份相比,当提供无效的日期和/或月份时,这将导致ParseException。请注意,这并不验证年份本身,因为基本上任何年份都是有效的。根据具体的功能要求,您可能需要对年份进行额外检查,例如:在/上拆分字符串,然后检查第一部分的长度是否为4。

答案 1 :(得分:-2)

您最好使用RegExp验证输入,
例如,看看这个答案:
https://stackoverflow.com/a/2149692/1448704

塞巴斯蒂安