gpt4 book ai didi

java - 比较日历对象以获取秒数差异

转载 作者:行者123 更新时间:2023-11-30 04:33:37 25 4
gpt4 key购买 nike

我正在尝试获取两个日历对象的秒数差异。

第一个日历对象是当前调用时间,第二个日历对象是项目的创建时间戳。

现在我想知道“创建时间戳+几秒”是否晚于或早于当前调用时间日历对象日期时间。

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 会强制我保存的变量更新其日期时间吗?在我看来,这种情况确实发生了。

-> 我真的确定我的方法确实只被调用一次

最佳答案

日历是可比较的,不要获取毫秒并进行比较,使用 compareCalendar.compareTo(referenceCalendar)

就您而言:

Calendar referenceCalendar = Calendar.getInstance();
Calendar compareCalendar = obj.getCreationDate();
compareCalendar.add(Calendar.SECOND, obj.getDuaration());

if (compareCalendar.compareTo(referenceCalendar) >= 0) {
// ccompareCalendar is equals or greater referenceCalendar
}

关于java - 比较日历对象以获取秒数差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14006421/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com