2011-06-15 103 views
0

显示的时间超出了我的预期。我正在解析一个日期字符串并将其变为毫秒。返回错误时间的日历

year = Integer.parseInt(m1.group(1)); 
mo = Integer.parseInt(m1.group(2)); 
day = Integer.parseInt(m1.group(3)); 
hr = Integer.parseInt(m1.group(4)); 
min = Integer.parseInt(m1.group(5)); 
sec = Integer.parseInt(m1.group(6)); 

,在这里我设置了日历

Calendar cal = Calendar.getInstance(); 
cal.set(year, mo, day, hr, min, sec); 
time = cal.getTimeInMillis(); 
+0

什么叫“前进的道路是什么意思它应该是”? – mre 2011-06-15 01:58:48

回答

3

如果你看看日历文件here,然后访问here,你会看到,今年1月份是0。你会想你的代码更改为mo = Integer.parseInt(m1.group(2))-1;

+0

这是一个比答案更重要的假设。代码工作的 – mre 2011-06-15 02:02:57

+0

谢谢。 – user798759 2011-06-15 02:06:46

+0

@ user798759,下次更具体......这次你很幸运。 – mre 2011-06-15 02:08:05

0

你或许应该使用DateFormatter来解析日期字符串(而不是滚动您自己)。

除此之外,请确保您有适当的时区,并了解该月的第一个月是二月(而非一月)。

+0

我打赌它是一个总是有趣的零索引月份。 – Affe 2011-06-15 02:00:49