我想在 Java 中创建自定义 DateTimeFormatter

I want to create a custom DateTimeFormatter in Java

我想创建一个自定义格式化程序。我想以以下形式输入一个字符串 yyyy-mm-dd-hh 这样我就可以使用格式化程序生成 LocalDateTime 变量。 所以我想做的是以 yyyy-mm-dd-hh 的形式输入一个字符串,然后我可以将该字符串格式化为 LocalDateTime 格式。

但我一直收到错误消息:

Exception in thread "main" java.time.format.DateTimeParseException: Text '' could not be parsed at index 0
    at java.base/java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:2052)
    at java.base/java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1954)
    at java.base/java.time.LocalDateTime.parse(LocalDateTime.java:494)
    at Festival.main(Festival.java:28)

我的代码:

 Scanner sc = new Scanner(System.in);
    String naam;
    String lineup;
    int dagen;
    int artiesten;
    int duurtijd;
    String wanneer;

    System.out.println("Wat is de naam van je festival?");
    naam = sc.next();
    System.out.println("Hoeveel dagen duurt je festival?");
    dagen = sc.nextInt();
    System.out.println("Hoeveel artiesten plan je per dag?");
    artiesten = sc.nextInt();
    System.out.println("Wat is de duurtijd van een optreden (in minuten)?");
    duurtijd = sc.nextInt();
    System.out.println("Wanneer zal je festival doorgaan? geef de startdatum als volgt: jaar-maand-dag-uur");
    wanneer = sc.nextLine();

    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd-HH");
    LocalDateTime formatDateTime = LocalDateTime.parse(wanneer, formatter);
    Podium podium = new Podium(naam, formatDateTime, dagen, artiesten, duurtijd);

答案很简单。这是扫描仪的问题。 我只需要使用

sc.next()

而不是

sc.nextLine()