2

我正在尝试验证实际上是字符串的日期,并尝试以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。我也想要验证。不知道如何进行。

4

2 回答 2

5

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

ft.setLenient(false);

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

于 2012-10-24T20:47:48.203 回答
-2

您最好使用 RegExp 来验证输入,
例如,请参阅此答案:
https ://stackoverflow.com/a/2149692/1448704

塞巴斯蒂安

于 2012-10-24T20:48:50.513 回答