我试图以秒为单位计算两个日历对象的差异。
第一个日历对象是当前调用时间,第二个日历对象是项目的创建时间戳。
现在我想知道“创建时间戳+几秒”是在当前调用时间日历对象 datetime 之后还是之前。
Calendar referenceCalendar = Calendar.getInstance();
Calendar compareCalendar = obj.getCreationDate();
compareCalendar.add(Calendar.SECOND, obj.getDuaration());
long differenceInSeconds = (compareCalendar.getTimeInMillis() - referenceCalendar.getTimeInMillis()) / 1000;
if (differenceInSeconds == 0) {
iter.remove();
} else if (differenceInSeconds > 0) {
iter.remove();
}
但结果总是“差异> 0”。任何想法我做错了什么?
任何帮助将不胜感激。
编辑
我发现日历对象“obj.getCreationDate()”会不断更新它们的日期时间。
方法其实很简单:
public void setCreationDate(Calendar date)
throws InvalidParameterException {
if (date == null) {
throw new InvalidParameterException(
"Creation date can not be null.");
} else {
this.creationDate = date;
}
}
并且该方法只会被调用 1 次:
setCreationDate(Calendar.getInstance);
Calendar.getInstance 会强制我保存的 var 更新其日期时间吗?在我看来,这种情况发生了。
-> 我真的很确定我的方法真的只被调用一次