日期时间比较结果不正确

Bit*_*ase 2 java datetime date date-comparison simpledateformat

这段代码应该是假的,因为11:49是在12:07之前.但代码正在返回true.

如果我将12:07更改为13:00,则会给出错误,这是正确的.我不知道12:07有什么问题.我错过了什么吗?我尝试了compareTo和giveTime方法以及相同的结果.

SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy hh:mm");
System.out.println(format.parse("5/31/2018 11:49").after(format.parse("5/31/2018 12:07")));
Run Code Online (Sandbox Code Playgroud)

孙兴斌*_*孙兴斌 7

hh(范围1-12),12:07解析为00:07:

SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy hh:mm");
System.out.println(format.parse("5/31/2018 00:07").equals(format.parse("5/31/2018 12:07")));  // true
Run Code Online (Sandbox Code Playgroud)

使用HH(范围0-23)代替,它将产生所需的结果:

SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy HH:mm");
System.out.println(format.parse("5/31/2018 11:49").after(format.parse("5/31/2018 12:07"))); // false
Run Code Online (Sandbox Code Playgroud)