java实现指定时间触发一个事件(比如定时发送短信)

package com.huawei.dm.datasource.system;


import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;


public class Test
{
    public static void main(String[] args)
    {
        Calendar calendar = Calendar.getInstance();
        
        /**
         * 指定触发的时间      现在指定时间为   2013年10月27号  15点  43 分 1 秒时触发
         */
        calendar.set(Calendar.DAY_OF_MONTH,27);//设置日期为27号
        calendar.set(Calendar.MONTH, 10);//设置日期为11月份   这里10表示11月份    11就表示12月份
        calendar.set(Calendar.HOUR_OF_DAY, 15); //设置15点的时候触发
        calendar.set(Calendar.MINUTE, 43); //设置43分钟的时候触发
        calendar.set(Calendar.SECOND, 1); //设置第一秒的时候触发
        
        Date time = calendar.getTime();
        Timer timer = new Timer();
        timer.schedule(new RemindTask(), time); 
    }
 
}




class RemindTask extends TimerTask {
    
    public void run() {
        System.out.println("你指定2013-11-27号15:34:01分执行已经触发!");
    }
}
  • 15
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
### 回答1: 可以使用 Java 的 `java.util.Timer` 类来创建定时任务。 首先,需要创建一个 `TimerTask` 对象,它代表要在指定时间点执行的任务。为了实现定时任务的逻辑,需要在 `TimerTask` 类的子类中重写 `run()` 方法。 然后,创建一个 `java.util.Timer` 对象,并使用它的 `schedule()` 方法来安排执行 `TimerTask`。 以下是一个简单的示例,它在当前时间的 5 秒后打印一条消息: ``` import java.util.Timer; import java.util.TimerTask; public class ScheduledTaskExample { public static void main(String[] args) { TimerTask task = new TimerTask() { @Override public void run() { System.out.println("Task executed!"); } }; Timer timer = new Timer(); long delay = 5000; // delay for 5 seconds timer.schedule(task, delay); } } ``` 您也可以使用 `scheduleAtFixedRate()` 方法来设定在固定时间间隔内重复执行任务。 希望这对您有帮助。 ### 回答2: 使用Java编写定时任务可以使用Java自带的Timer类和TimerTask类来实现。先创建一个类,用于定义定时任务的具体操作,然后通过Timer类创建定时器,并使用schedule方法设定某一时间触发。 下面是一个简单的示例代码: import java.util.Timer; import java.util.TimerTask; public class MyTask extends TimerTask { public void run() { // 在此处编写定时任务的具体逻辑 System.out.println("定时任务触发"); } public static void main(String[] args) { Timer timer = new Timer(); MyTask myTask = new MyTask(); // 设定触发时间为2022年1月1日 08:00:00 timer.schedule(myTask, new GregorianCalendar(2022, 0, 1, 8, 0, 0).getTime()); } } 上述代码中,定义了一个MyTask类继承自TimerTask类,并覆写了run方法,该方法即为定时任务的具体逻辑。在main方法中,创建了一个Timer实例timer和一个MyTask实例myTask,并使用timer的schedule方法设定某一时间触发。这里使用了GregorianCalendar类来设定触发时间为2022年1月1日 08:00:00。 运行该代码,当时间达到设定的触发时间时,定时任务就会被执行,输出"定时任务触发"。这样就实现了用Java编写一个定时任务,并设定某一时间触发的功能。 ### 回答3: 使用Java编写一个定时任务,可以使用Java中的Timer和TimerTask类来实现。 首先,创建一个继承自TimerTask的自定义任务类,重写其中的run方法,编写在指定时间点要执行的任务逻辑。 接下来,在程序中创建一个Timer对象,调用其schedule方法来设置任务的执行时间,该方法需要传入一个TimerTask对象和一个Date对象,表示任务在何时执行。 具体代码如下所示: ```java import java.util.Timer; import java.util.TimerTask; public class ScheduledTask extends TimerTask { public void run() { System.out.println("定时任务执行了"); // 在此处编写具体的任务逻辑 } public static void main(String[] args) { Timer timer = new Timer(); ScheduledTask task = new ScheduledTask(); // 设置任务在指定时间触发 // 这里假设指定时间点为2021年10月1日 9:00:00 timer.schedule(task, new Date(121, 9, 1, 9, 0, 0)); } } ``` 以上代码中,定时任务的逻辑被编写在了run方法中,在任务执行时会输出一段文字。在main方法中,我们创建了一个Timer对象和一个ScheduledTask对象,并使用schedule方法来设置任务的执行时间。 这样,当指定时间点到达时,定时任务会自动触发执行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值