我想用Java创建一个自定义DateTimeFormatter



我想创建一个自定义格式化程序。我想输入一个字符串,格式为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((

相关内容

  • 没有找到相关文章

最新更新