java 使用 simpledateformat 解析输入字符串得到 ParseException,并且只是因为 space

java use simpledateformat to parse a input String get ParseException, and just because of a space

我输入了一个字符串,就像询问的 SimpleDateFormat 模式一样,但它会是 ParseException。我做了几个测试。如果我把"dd HH"之间的space改成"dd-HH",pattern就变成了"yyyy-MM-dd-HH:mm:ss",就成功了。 第二个测试是我直接写一个字符串像 String birthdays = "1998-08-12 12:12:12"; 并解析它,它也会成功。 所以我的结论是我输入的 space 与模式中的 space 不同。我用的是IntelliJ

        SimpleDateFormat datef = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Scanner sc = new Scanner(System.in);
        System.out.println("Please input your birthday. the pattern is " +
                "yyyy-MM-dd HH:mm:ss");
        String birthday = sc.next();
        Date date2 = datef.parse(birthday);
//        String birthdays = "1998-08-12 12:12:12";
//        Date date2 = datef.parse(birthdays); //this will successful
        System.out.println(date2);

而不是使用 sc.next() 使用 sc.nextLine()

sc.next() 会找到 space 之前的第一个字符串,但 nextLine() 会接受整个字符串,包括 space.

这个问题不是因为 space。