5

这可能是一个愚蠢的问题,但我不明白 java 日期函数。这是一些代码:

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 date 函数,但我似乎无法在任何地方找到任何解释。这搞砸了我的时间跨度计算器。

4

2 回答 2

12

如果要使用 24 小时制时间,则需要使用大写的 HH 格式:

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); 
于 2011-01-11T16:31:11.693 回答
0

我应该使用“H”而不是“h”。“h”代表上午/下午格式。

于 2011-01-11T16:36:35.380 回答