我想知道Java中有什么方法可以做到这一点,否则我可能会去Regex解决方案。我从用户输入的字符串可以是任何字符。我想检查输入的字符串是否符合我要求的日期格式。 当我输入了20130925时,所需的格式为dd / MM / yyyy,因此,在这种情况下,我应该得到false。 我不想转换此日期,我只想检查输入的字符串是否符合所需的日期格式。我尝试了以下Date date = null;try {date = new SimpleDateFormat("dd/MM/yyyy").parse("20130925");} catch (Exception ex) {// do something for invalid dateformat}但是我的catch(ex exException)块无法捕获SimpleDateFormat.Parse();生成的任何异常;
3 回答
烙印99
TA贡献1829条经验 获得超13个赞
对于您的情况,可以使用正则表达式:
boolean checkFormat;
if (input.matches("([0-9]{2})/([0-9]{2})/([0-9]{4})"))
checkFormat=true;
else
checkFormat=false;
对于更大的范围,或者如果您想要灵活的解决方案,请参考MadProgrammer的答案。
编辑
发布此答案将近5年后,我意识到这是一种验证日期格式的愚蠢方法。但我只想在这里告诉人们使用正则表达式验证日期是不可接受的
添加回答
举报
0/150
提交
取消