2011-01-11 149 views
5

這可能是一個愚蠢的問題,但我不明白java日期函數。下面是一些代碼:關於java的簡單問題SimpleDateFormat

SimpleDateFormat sdf = new SimpleDateFormat("hh:mm"); 
Date s = sdf.parse(var); 
Calendar scal = java.util.GregorianCalendar.getInstance(); 
scal.setTime(s); 
Log.w("Time: ", Long.toString(s.getTime())); 

如果VAR = 「10:00」 我得到 「64800000」。

如果var =「11:00」,我會得到「68400000」。

如果var =「12:00」,我會得到「28800000」。

如果var =「13:00」,我會得到「75600000」。

如果var =「14:00」,我會得到「79200000」。

如果var =「00:00」,我會得到「28800000」。

什麼是12:00?爲什麼當var = 12:00時,我會得到與00:00時相同的結果?所有其他結果似乎是正確的。我顯然不明白java日期函數,但我似乎無法在任何地方找到任何解釋。這是搞砸我的時間跨度計算器。

+0

你的問題不清楚給我。你在哪裏設置var?既然你使用的是非軍事時間的hh:mm,所以也許這就是爲什麼你得到12的00。 – CoolBeans 2011-01-11 16:35:35

回答

12

如果您想使用24小時的時間,你需要利用資本HH格式:

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); 
0

我應該用「H」替換「h」。 「h」是am/pm格式。