日历返回错误的时间

时间:2011-06-15 01:55:29

标签: java calendar

显示的时间远远超出我的预期。我正在解析日期字符串并将其转换为毫秒。

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();

2 个答案:

答案 0 :(得分:3)

如果您查看日历文档here,然后访问here,您会看到1月份是0月。您需要将代码更改为mo = Integer.parseInt(m1.group(2))-1;

答案 1 :(得分:0)

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

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