2017-08-24 59 views
-1

我试图将军事时间转换为日期,除时间范围从1200到12:59之外,它工作良好。预期时间为12:MM而不是00:MM。解析军事时间不适用于时间形式1200至1259

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 
+2

使用'HHmm'而不是'hhmm' –

+1

我觉得你很困惑24小时时间与标准的12小时时间,其中24小时的中午12:00是中午12点,而00:00是午夜12点。 – SPlatten

+0

关闭主题,为什么你使用过时的'SimpleDateFormat'类?我热烈推荐现代的'DateTimeFormatter'。 –

回答

1

你应该使用"HHmm"为日期格式说明,而不是"hhmm" - 根据this documentationH用于从零开始的24小时的格式,而h用于基于1的12小时格式。

+2

这确实是解决方案。如果你也可以说为什么会很好 –