0

我输入了一个类似于 SimpleDateFormat 模式的字符串,但它会是 ParseException。我做了几个测试。如果我将“dd HH”之间的空格更改为“dd-HH”,则模式变为“yyyy-MM-dd-HH:mm:ss”,它将成功。第二个测试是我直接写了一个字符串 String birthdays = "1998-08-12 12:12:12"; 然后解析它,它也会成功。所以我的结论是我输入的空间与模式中的空间不一样。我使用的是 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);
4

1 回答 1

1

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

sc.next() 将找到第一个字符串直到空格,但 nextLine() 将接受包括空格在内的整个字符串。

这个问题不是因为空间。

于 2020-04-09T08:44:24.193 回答