我认为我对getTimeInMillis()的理解不正确。我一直认为毫秒时间戳代表一个日期,但就我而言,这使我觉得与众不同。在这里,我正在使用一种向数组添加时间戳的方法,如下所示:

Calendar date = Calendar.getInstance();
date.set(2015, 9, 25, 12, 0);
timeArray.push(date.getTimeInMillis());


在代码的其他部分,我在相同的日期执行相同的操作:

Calendar date2 = Calendar.getInstance();
date2.set(2015, 9, 25, 12, 0);


不幸的是,此比较返回false:

timeArray.get(0) == date2.getTimeInMillis();


这两个值不正确吗?还是我理解getTimeInMillis()方法错误?如果是这样,我如何才能以其他方式实现自己的目标?

最佳答案

让我们看一下documenation
因此,根据对set方法的说明:


  设置日历字段YEAR,MONTH,DAY_OF_MONTH,
  HOUR_OF_DAY和MINUTE。保留其他字段的先前值。
  如果不希望这样做,请首先调用clear()。


因此,解决方法应该很简单:只需先调用clear()方法即可。

10-02 18:52