Java中SimpleDateFormat的简单问题

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日期函数,但我似乎找不到任何解释。这影响了我的时间跨度计算器。

你的问题对我来说不太清楚。你在哪里设置变量?因为你使用的是非军事时间hh:mm,所以可能这就是为什么你得到12的00的原因。 - CoolBeans
2个回答

12

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

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

0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接