java - 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);
有谁知道如何解决它?
解决方案
这是问题所在。
String dateInString = sc.next();
该next()
调用返回下一个以空格分隔的标记,即“22-01-2015”而不是“22-01-2015 08:15:55 AM”。
解析器说……“时间在哪里?Bzzztt!”
解决方案:使用nextLine()
读取完整的一行输入。
(线索在异常消息中。它会返回您要求它解析的字符串......)