2011-01-11 90 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格式。