【发布时间】:2015-06-21 01:35:43
【问题描述】:
我想获取变量的最后更新时间。
static Date ti;
for (int i = 0; i <= attachedControllers.length; i++ )
{ ti = null;
controllers tempc = attachedControllers[i];
ti = tempc.getLastUpdated(); // return the last updated time of each controllers object.
System.out.println("last updated of \t" + tempc.getControllerName() +"is \t"+ti);
Date t2 = new Date();
System.out.println("Time now \t" + t2);
long s = (t2.getTime() - ti.getTime())/(1000 * 60 );
System.out.println("difference is \t"+s);
}
问题是变量 ti 存储了每个控制器对象的最后更新时间的所有先前值。我只想得到最后一个值。 这里的输出是:
last updated of 0.0.0.0/0.0.0.0:6632is Sun Jun 21 03:38:59 AST 2015
Time now Sun Jun 21 03:39:14 AST 2015
difference is 0
last updated of 0.0.0.0/0.0.0.0:6633is Sun Jun 21 03:39:04 AST 2015
Time now Sun Jun 21 03:39:19 AST 2015
difference is 0
last updated of 0.0.0.0/0.0.0.0:6632is Sun Jun 21 03:38:59 AST 2015
Time now Sun Jun 21 03:40:14 AST 2015
difference is 1
last updated of 0.0.0.0/0.0.0.0:6633is Sun Jun 21 03:39:04 AST 2015
Time now Sun Jun 21 03:40:19 AST 2015
difference is 1
last updated of 0.0.0.0/0.0.0.0:6632is Sun Jun 21 03:40:59 AST 2015
Time now Sun Jun 21 03:41:14 AST 2015
difference is 0
last updated of 0.0.0.0/0.0.0.0:6632is Sun Jun 21 03:38:59 AST 2015 // here it retrieve the first value of last updated time which is my problem.
Time now Sun Jun 21 03:41:14 AST 2015
difference is 2
last updated of 0.0.0.0/0.0.0.0:6633is Sun Jun 21 03:39:04 AST 2015
Time now Sun Jun 21 03:41:19 AST 2015
difference is 2
我这样称呼这个函数:
ScheduledThreadPoolExecutor exec = new ScheduledThreadPoolExecutor(1);
exec.scheduleAtFixedRate(new Runnable()
{
public void run()
{
checkControllerHealth ();
}
}, 15, 60, TimeUnit.SECONDS);
【问题讨论】:
标签: java for-loop last-modified