选择12:00时比较时间不正确

hDD*_*Den 1 java datetime simpledateformat

我正在创建一个预订系统,我不想让用户在开始时间11:00和结束时间09:00(过去)预订(我正在使用24小时制).我有两个充满字符串的组合框,作为开始和结束时间(09:00,10:00,11:00,12:00,13:00 ......)

我有这个代码:

 String start = (String) startTime.getSelectedItem();
        String end = (String) endTime.getSelectedItem();
        try {
            if(new SimpleDateFormat("hh:mm").parse(start).before(new SimpleDateFormat("hh:mm").parse(end))){
                System.out.println("test1");// future date - good

            }else{
                System.out.println("fail2");// old date - bad
            }
        } catch (ParseException ex) {
                System.out.println("error");
        }
Run Code Online (Sandbox Code Playgroud)

除非我选择开始/结束时间为12:00,否则此操作非常有效.程序输出与它应该输出的相反,我不确定为什么.

如果我选择开始时间14:00和结束时间12:00,程序将输出fail2(良好输出),

如果我选择开始时间09:00和结束时间12:00程序将输出fail2(应该是test1),

如果我选择开始时间12:00和结束时间10:00,程序将输出test1(应该是fail2),

如果我选择开始时间12:00和结束时间15:00,程序将输出test1(良好输出)

这种类型的问题只发生在我选择12:00时.

孙兴斌*_*孙兴斌 7

你应该用HH:mm.

hh范围01-12,而HH范围1-23.

更新

检查文档SimpleDateFormat:

H:一天中的小时(0-23)

h:上午/下午(1-12)小时