关于java SimpleDateFormat的简单问题

时间:2011-01-11 16:27:11

标签: java android date simpledateformat

这可能是一个愚蠢的问题,但我不懂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日期函数,但我似乎无法在任何地方找到任何解释。这搞砸了我的时间跨度计算器。

2 个答案:

答案 0 :(得分:12)

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

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

答案 1 :(得分:0)

我应该使用“H”而不是“h”。 “h”代表am / pm格式。