前言:
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 类中常用的方法包括:
-
void cancel()
:取消任务的执行。 -
boolean cancel()
:判断任务是否已经被取消。 -
long scheduledExecutionTime()
:返回任务最近一次被执行的时间。 -
abstract void run()
:任务执行时的逻辑具体实现,需要在子类中重写该方法。
TimerTask 类中还有一些辅助方法,主要用于任务的调度和设置:
-
void scheduledExecutionTime(Date time)
:设置任务的执行时间。 -
void schedule(Timer timer, Date time)
:将任务安排在指定的时间开始执行。 -
void schedule(Timer timer, long delay)
:在指定的延迟时间后开始执行任务。 -
void schedule(Timer timer, long delay, long period)
:在指定的延迟时间后开始执行任务,并以指定的间隔时间重复执行。