Calendar date1 = Calendar.getInstance();
Calendar date2 = Calendar.getInstance();
boolean checkTime = true;
if (checkTime == true)
before=date1.get(Calendar.SECOND);
checkTime=false;
after=date2.get(Calendar.SECOND);
difference= after-before;
我拥有它以便before变量将成为静态秒,它将继续重新计算后续时间,并获得两者之间的差异。然而,它似乎只是更新后的'变量一次,导致差值为0.
聚苯乙烯。这是我玩的游戏,我试图让这个动作相对于时间而言。 我无法弄清楚我做错了什么。
答案 0 :(得分:0)
Calendar date2 = Calendar.getInstance();
获取一个使用当前日期和时间初始化的日历。之后它不会改变,因此after
将始终是相同的值。如果您希望每次迭代都需要新的当前时间,则需要在每次迭代时创建一个新实例(或使用System.currentTimeMillis()
)。
答案 1 :(得分:0)
大多数情况下你会得到0,因为你的代码行在不到一毫秒的时间内执行。还有运行时优化和GC扮演他们的角色。
总而言之,您无法确定结果是否为非零。
你可以尝试这样的事情,
Calendar date1 = Calendar.getInstance();
try{
Thread.sleep(1000);
}catch(Exception e){}
Calendar date2 = Calendar.getInstance();
与1有所不同。
看看here。