Calendar和TimerTask类介绍

发布时间 2023-10-04 11:46:07作者: 斌哥的小弟

前言:

Calendar 类是 Java 提供的日期和时间操作的类,它可以用于获取、设置和操作日期和时间的各个部分,比如年、月、日、时、分、秒等。通过 Calendar 类,我们可以进行日期的比较、计算、格式化、增减等操作。它是一个抽象类,可以使用静态方法 getInstance() 获取 Calendar 对象的实例。

TimerTask 类是 Java 提供的一个工具类,用于在指定的时间间隔内执行任务。它是 Timer 类的内部类,通过 Timer 和 TimerTask 的配合使用,可以实现定时任务的调度和执行。TimerTask 类中的 run() 方法定义了具体的任务逻辑,我们可以继承 TimerTask 类,并重写该方法来自定义自己的任务内容。TimerTask 类可以在一次性执行或者重复执行多次。

 

使用案例:

 Calendar currentTime=Calendar.getInstance(); //获取当前时间
        //设置要执行的代码的目标时间
        Calendar targetTime=Calendar.getInstance();
        targetTime.set(Calendar.YEAR,2023);
        targetTime.set(Calendar.MONTH,Calendar.AUGUST);
        targetTime.set(Calendar.DAY_OF_MONTH,9);
        targetTime.set(Calendar.HOUR_OF_DAY,16);
        targetTime.set(Calendar.MINUTE,1);
        targetTime.set(Calendar.SECOND,0);

        long delay=targetTime.getTimeInMillis()-currentTime.getTimeInMillis();
        System.out.println(delay);
        Timer timer=new Timer();
        TimerTask task=new TimerTask() {
            @Override
            public void run() {
                System.out.println("时间已到");
...//执行其他任务 } }; timer.schedule(task,delay);

 

其他相关方法:

TimerTask 类中常用的方法包括:

  1. void cancel():取消任务的执行。

  2. boolean cancel():判断任务是否已经被取消。

  3. long scheduledExecutionTime():返回任务最近一次被执行的时间。

  4. abstract void run():任务执行时的逻辑具体实现,需要在子类中重写该方法。

TimerTask 类中还有一些辅助方法,主要用于任务的调度和设置:

  1. void scheduledExecutionTime(Date time):设置任务的执行时间。

  2. void schedule(Timer timer, Date time):将任务安排在指定的时间开始执行。

  3. void schedule(Timer timer, long delay):在指定的延迟时间后开始执行任务。

  4. void schedule(Timer timer, long delay, long period):在指定的延迟时间后开始执行任务,并以指定的间隔时间重复执行。