我正在寻找Java中监视计算机时钟(分钟)的最佳方法,并在每次更改时触发方法/线程。
所以,如果时间是13:20并且它变为13.21然后做一些事情。因此,只要有一分钟更改,一些代码就会被解雇。
收听时钟的分钟部分进行更改的最佳方法是什么?
谢谢, 理查德
答案 0 :(得分:6)
在那个TimerTask的事件处理程序中安排一个新的重复发生的TimerTask每隔60,000毫秒运行一次。
int milisInAMinute = 60000;
long time = System.currentTimeMillis();
Runnable update = new Runnable() {
public void run() {
// Do whatever you want to do when the minute changes
}
};
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
update.run();
}
}, time % milisInAMinute, milisInAMinute);
// This will update for the current minute, it will be updated again in at most one minute.
update.run();
答案 1 :(得分:2)
听起来像Quartz的工作。您可以使用以下cron表达式执行此操作:
0 * * * * ?
答案 2 :(得分:1)
Date d = new Date(System.currentTimeMillis());
然后您可以按d.getMinutes()
获取分钟数。在线程中运行检查,等待d.getMinutes()
的值更改。