首页 > 解决方案 > java.text.ParseException:在 Eclipse 控制台中输入日期时无法解析日期

问题描述

我正在开发一个代码来将提供的日期时间转换为 GMT 日期时间。当我根据以下代码段在代码中提供日期时间时,它工作正常。

SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss", Locale.ENGLISH);
String dateInString = "22-01-2015 08:15:55 AM"; 
Date date_1 = formatter.parse(dateInString);

但是,当我在控制台上输入与输入相同的日期时间时,控制台会根据以下代码段显示 java.text.ParseException。

System.out.println("Enter time in 'dd-MM-yyyy hh:mm:ss a' format");
Scanner sc = new Scanner(System.in);
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss", Locale.ENGLISH);
String dateInString = sc.next();
Date date_1 = formatter.parse(dateInString);

在此处输入图像描述

有谁知道如何解决它?

标签: javaeclipsedatetime

解决方案


这是问题所在。

String dateInString = sc.next();

next()调用返回下一个以空格分隔的标记,即“22-01-2015”而不是“22-01-2015 08:15:55 AM”。

解析器说……“时间在哪里?Bzzztt!”

解决方案:使用nextLine()读取完整的一行输入。


(线索在异常消息中。它会返回您要求它解析的字符串......)


推荐阅读