如何检查字符串是否为dd-mm-yy形式

Amu*_*iko -3 java string

我正在尝试测试一个String,如果它是dd-mm-yyyy的形式.有什么帮助吗?

对不起,我只是个初学者.

Dao*_*Wen 6

您可以使用实际解析并检查它是否是有效日期dd-mm-yyyy,而不仅仅是检查,这将允许输入.99-99-9999SimpleDateFormat

SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
formatter.parse("99-99-9999");
formatter.parse("18-07-2013");
Run Code Online (Sandbox Code Playgroud)

如果日期无效,它将抛出ParseException,然后您可以适当地捕获并处理错误.

编辑:

正如波希米亚人指出的那样,这实际上并没有在99-99-9999输入上引发异常.相反,它有点"滚动"将坏日期解释为合法日期.我认为他们可能是故意这样做的,以使日期算术更容易.例如,解析后10-13-2000变为10-1-2001(没有第13个月,所以它变成了下一年的第1个月).如果你想让它抛出异常,你需要告诉它不宽容:

SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
formatter.setLenient(false); // <== Added this line
formatter.parse("99-99-9999");
formatter.parse("18-07-2013");
Run Code Online (Sandbox Code Playgroud)