GregorianCalendar两天之间的时间不连续

时间:2014-06-27 14:11:12

标签: java

我试图比较两个日期之间的ms数,但我在某些特定日期遇到问题。 2015年2月1日的例子:

System.out.println(new GregorianCalendar(2015, 01, 30, 12, 0, 0).getTimeInMillis());
System.out.println(new GregorianCalendar(2015, 01, 31, 12, 0, 0).getTimeInMillis());
System.out.println(new GregorianCalendar(2015, 02, 01, 12, 0, 0).getTimeInMillis());

这将返回以毫秒为单位的时间,这是按时间顺序排序的:

1425294000000 
1425380400000 
1425207600000

我已经知道如何使用另一个类(DateFormat)来避免这个问题。但我不明白这个问题。

1 个答案:

答案 0 :(得分:8)

2月31日不存在。 GregorianCalendar构造函数的月(第二个参数)是一个从0开始的索引。 [0-11]