【发布时间】:2017-11-20 09:42:02
【问题描述】:
为什么这个时差总是0?基本上start 和end 总是具有相同的值。我尝试使用Calendar 而不是Date。如果我使用Duration 而不是日期,我无法比较boolean temp = (diff>500);。
private Date now=new Date();
private long start;
private long end;
public void ABC(){
start = now.getTime();
...
...
...
...
end = now.getTime();
long diff = end - start;
boolean temp = (diff>500);
System.out.println(diff); //This always outputs 0, basically start and end have same value always
}
【问题讨论】:
-
因为您使用相同的日期实例作为开始时间和结束时间。这可能是 0 差异的可能原因
-
你创建一个
new Date()。这存储了它的创建时间。尝试在不同时间创建 两个new Date()。 -
使用:start=new Date().getTime() and end=new Date().getTime()
-
@akshayapandey 更简单:
start = System.currentTimeMillis(); end = System.currentTimeMillis();. -
仅供参考,您正在使用麻烦的旧日期时间类,它们现在已被遗留,被 java.time 类所取代。