2017-08-24 47 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

這確實是解決方案。如果你也可以說爲什麼會很好 –