Java 解析军事时间对于从1200到1259的时间段不起作用

Java 解析军事时间对于从1200到1259的时间段不起作用,java,date,Java,Date,我正在尝试将军事时间转换为日期,它运行良好,除非时间范围为1200到12:59。预期时间为12:MM,而不是00:MM String format = String.format("%04d", Integer.parseInt(milTime)); date = new SimpleDateFormat("hhmm").parse(format); 以下是一些例子:- 1)milTime:1245 <--- Input Date: Thu Jan 01 00:45:00 EST 19

我正在尝试将军事时间转换为日期,它运行良好,除非时间范围为1200到12:59。预期时间为12:MM,而不是00:MM

String format = String.format("%04d", Integer.parseInt(milTime));
date = new SimpleDateFormat("hhmm").parse(format);
以下是一些例子:-

1)milTime:1245  <--- Input
Date: Thu Jan 01 00:45:00 EST 1970   //Expecting Thu Jan 01 12:45:00 EST 1970

2)milTime:1200
Date:Thu Jan 01 00:00:00 EST 1970    //Expecting Thu Jan 01 12:00:00 EST 1970

1)milTime:1245根据,
H
用于基于零的24小时格式,而
H
用于基于1的12小时格式。

使用
HHmm
而不是
HHmm
我认为你把24小时制时间与标准12小时制时间混淆了,24小时制的12:00是中午12点,00:00是午夜12点。离题,为什么要使用过时的
SimpleDataFormat
类?我强烈推荐使用现代的
DateTimeFormatter
,这确实是一个解决方案。如果你能说出原因,那就好了