【发布时间】:2017-01-26 19:33:19
【问题描述】:
我正在尝试以(dd/mm/yy) 格式从用户那里获取输入,将其保存为相同的格式并使用getter、setter 将其传递给另一个类。我试过这种方式:
这是我尝试过的:
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
SimpleDateFormat myFormat = new SimpleDateFormat("dd MM yyyy");
Guest gstObject = new Guest();
try {
System.out.println("Enter check-in date (dd/mm/yy):");
String cindate = input.next();
Date date1 = myFormat.parse(cindate);
gstObject.setIndate(date1);
} catch (ParseException e) {
e.printStackTrace();
}
}
使用此代码,当我在(27012017 或 27 01 2017)中输入时遇到异常:
java.text.ParseException:无法解析的日期:“27” 在 java.text.DateFormat.parse(DateFormat.java:366) 在 edu.lfa.GuestArrayList.main(GuestArrayList.java:49)请指出我犯了什么错误。
【问题讨论】:
-
使用
input.nextLine()而不是input.next()。此外,您正在提示用户输入与您的SimpleDateFormat实际接受的格式不同的格式,因此请注意这一点。 -
那么如果你想让他们输入
dd/mm/yy,你为什么写myFormat = new SimpleDateFormat("dd MM yyyy");? -
尝试输入“27 01 2017”,因为您的日期格式为“dd MM yyyy”或将格式更改为“dd/MM/yyyy”。
标签: java java.util.scanner java.util.date