【问题标题】:I want to create a custom DateTimeFormatter in Java [duplicate]我想在 Java 中创建一个自定义 DateTimeFormatter [重复]
【发布时间】:2021-12-21 16:12:18
【问题描述】:

我想创建一个自定义格式化程序。我想以以下形式输入一个字符串 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);

【问题讨论】:

  • edit 发帖并添加带有静态输入的minimal reproducible example 以重现Exception
  • 好像wanneer 是空的
  • 我编辑并添加了所有内容,直到问题出现
  • 您的格式化程序 DateTimeFormatter.ofPattern("yyyy-MM-dd-HH") 非常适合您的用途。
  • @OleV.V.确实,上面的扫描仪是问题所在。不是格式化程序;)

标签: java java.util.scanner localdatetime datetimeformatter


【解决方案1】:

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

sc.next()

而不是

sc.nextLine()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-20
    • 2019-10-07
    • 1970-01-01
    • 2019-02-28
    • 2019-11-12
    • 2021-08-18
    相关资源
    最近更新 更多