好的,在Java中,我想问用户一个24小时格式的时间。我设法利用
DateFormat
和
SimpleDateFormat
告诉它输入时间的格式,然后相应地解释它,如果它不遵循该格式,则抛出异常。以下是我所拥有的:
DateFormat fmt = new SimpleDateFormat("HH:mm");
Scanner keyboard = new Scanner(System.in);
try {
String input = keyboard.nextLine();
Date theDate = fmt.parse(input);
System.out.println(theDate.toString());
} catch (ParseException e) {
System.out.println("Incorrect format!");
e.printStackTrace();
}
如果我输入一个单词,它确实会抛出一个异常。但是,如果我输入
234234:2342342
它实际上去做数学计算出这些小时和分钟等于多少天,然后输出实际日期。例如,给定输入:
input: 23423423:232323
output: Fri Jul 29 07:03:00 PDT 4642
我想知道是否有办法把这当作一个例外。所以我只想接受格式化程序指定的内容(h0-23和m0-59),如果它不在这些边界内,抛出一个异常或者有某种方法知道。我想知道的是,在我正在使用的格式化程序类中是否有这样做的方法,或者是否应该使用Scanner类(如何?),或者是否必须自己编写解析和验证代码。我完全错了吗?我目前正在尝试的可能性,所以如果有更好的方法,请让我知道。