java Timer 定时器使用

public static void main(String[] args) {
        LocalDateTime curTime = LocalDateTime.now();
        long curLongTime = curTime.toInstant(ZoneOffset.ofHours(8)).toEpochMilli();                 // 当前时间的时间戳
        long afterLongTime = curTime.plusMinutes(2).toInstant(ZoneOffset.ofHours(8)).toEpochMilli(); // 2分钟后时间戳
        try {
            System.out.println("执行前:" + LocalDateTime.now());
            new Timer().schedule(new TimerTask() {
                @Override
                public void run() {
                    // 写需要处理的任务
                    System.out.println("执行时:" + LocalDateTime.now());
                    System.out.println("我被执行了哦!");
                }
            }, afterLongTime - curLongTime);
        }catch (Exception e){
            e.printStackTrace();
        }
    }

schedule(TimerTask task, long delay) 的注释:Schedules thespecified task for execution after the specifieddelay。大意是在延时delay毫秒后执行task。并没有提到重复执行

schedule(TimerTask task, long delay, long period) 的注释:Schedulesthe specified task for repeated fixed-delay execution, beginningafter the specified delay。大意是在延时delay毫秒后重复的执行task,周期是period毫秒

猜你喜欢

转载自blog.csdn.net/gelinwangzi_juge/article/details/117989909