public static void checkTimes(String start, String end) {
try {
if (LocalTime.parse(start).isBefore(LocalTime.parse(end))) {
System.out.println("test1");// future date - good
} else {
System.out.println("fail2");// old date - bad
}
} catch (DateTimeParseException dtpe) {
System.out.println("error");
}
}
我们来试试吧:
checkTimes("14:00", "12:00");
checkTimes("09:00", "12:00");
checkTimes("12:00", "10:00");
checkTimes("12:00", "15:00");
这打印:
fail2
test1
fail2
test1
我相信这与你的意图一致.请注意,LocalTime会解析您的字符串,而无需显式格式化程序.此外,如果您相信组合框仅包含有效的时间字符串,则可以省略try-catch构造,因为DateTimeParseException是未经检查的异常.
如果startTime和endTime是JComboBox,我相信你甚至可以将LocalTime对象填充到它们中.然后,当用户从每个用户中选择一个时,您不需要解析.你的JComboBox将调用LocalTime.toString(),它将返回一个像09:00这样的字符串,然后组合框将显示并让用户选择.
LocalTime[] times = { LocalTime.of(9, 0), LocalTime.of(10, 0), LocalTime.of(11, 0),
LocalTime.of(12, 0), LocalTime.of(13, 0), LocalTime.of(14, 0) };
JComboBox combo = new JComboBox<>(times);
展开:
我在java.time中使用LocalTime,它是现代Java日期和时间API. java.time通常比旧的和过时的日期和时间类(如SimpleDateFormat,Date等)更好.