首页 > 解决方案 > 当用户在 Java8 中输入错误的日期格式时如何给出错误消息

问题描述

如果用户使用错误的格式输入,我想给出错误消息。正确的格式是“yyyy-MM-dd HH:mm:ss”。我怎么能把它作为一个条件?

例如 if (yyyy <0 ) { sout("请输入正确的年份")}

这是我用来询问用户并格式化它的代码

Scanner keyboard = new Scanner(System.in);
        String hour = "00:00:00";
        System.out.println("Please enter Date : ");
        String time = keyboard.next()+" "+ hour;
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        LocalDateTime dateTime = LocalDateTime.parse(time, formatter);

标签: javadatetime-formatlocaldate

解决方案


您可以使用正则表达式比较:

while input doesn't match the regex pattern
     print "Please enter date in the correct format: yyyy-MM-dd HH:mm:ss"
continue with the rest of the code

RegEx 模式可以是:

\d{4}-[01]\d-[0-3]\d [0-2]\d:[0-5]\d:[0-5]\d(?:.\d+)? Z?

您可以使用站点创建和测试 RegEx 模式


推荐阅读