时钟上的Java事件监听器分钟更改

Dev*_*ode 3 java timer

我正在寻找Java中监视计算机时钟(分钟)的最佳方法,并在每次更改时触发方法/线程.

因此,如果时间是13:20并且它变为13.21然后做一些事情.因此,只要有一分钟更改,一些代码就会被触发.

听时钟的分钟部分进行更改的最佳方法是什么?

谢谢,理查德

Cha*_*lie 6

  1. 使用System.currentTimeMillis()查找当前系统时间
  2. 计算到下一分钟的毫秒数
  3. 在Timer上安排TimerTask,以便将来在该毫秒内运行
  4. 在那个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();
    
    Run Code Online (Sandbox Code Playgroud)