Java 实现每日 12 点定时任务:ScheduledExecutorService 与 LocalDateTime 实战
要实现一个Java每天12点触发的定时任务,可以使用`ScheduledExecutorService`和`LocalDateTime`类。首先,创建一个实现`Runnable`接口的任务类,然后在主类中创建一个`ScheduledExecutorService`实例,并使用`scheduleAtFixedRate`方法设置任务的执行时间和间隔。 以下是一个简单的示例: 1. 创建一个实现`Runnable`接口的任务类: ```java public class MyTask implements Runnable { @Override public void run() { System.out.println("任务执行时间:" + LocalDateTime.now()); } } ``` 2. 在主类中创建一个`ScheduledExecutorService`实例,并设置任务的执行时间和间隔: ```java import java.time.Duration; import java.time.LocalDateTime; import java.time.ZoneId; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; public class Main { public static void main(String[] args) { // 创建一个ScheduledExecutorService实例 ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(1); // 创建一个MyTask实例 MyTask myTask = new MyTask(); // 计算距离明天12点的时间间隔 LocalDateTime now = LocalDateTime.now(); LocalDateTime nextExecutionTime = now.withHour(0).withMinute(0).withSecond(0).plusDays(1); long initialDelay = Duration.between(now, nextExecutionTime).toMillis(); // 设置任务的执行时间和间隔 scheduledExecutorService.scheduleAtFixedRate(myTask, initialDelay, TimeUnit.DAYS.toMillis(1), TimeUnit.MILLISECONDS); } } ``` 这个示例中,`MyTask`类实现了`Runnable`接口,并在`run`方法中打印当前时间。在主类`Main`中,我们创建了一个`ScheduledExecutorService`实例,并使用`scheduleAtFixedRate`方法设置任务的执行时间和间隔。任务将在每天12点触发。 ######[AI写代码神器 | 507点数解答 | 2024-06-26 11:27:44]
- Java 实现复制粘贴功能:打造简易文本复制粘贴程序(GPT | 1497点数解答 | 2024-08-25 09:40:33)429
- 解决数据库“dm.jdbc.driver.dmexception: 数据溢出”问题的全步骤指南(阿里通义 | 598点数解答 | 2024-10-15 15:48:38)330
- 达梦数据库数据溢出问题排查及多维度解决方法(阿里通义 | 403点数解答 | 2024-10-15 15:48:41)1217
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)371
- C语言贪心法:多机调度问题的算法设计与代码实现(阿里通义 | 665点数解答 | 2024-11-27 08:39:39)365
- 打造智能任务调度与时间管理系统:功能全解析及实现秘籍(字节豆包 | 1346点数解答 | 2025-06-27 21:59:53)177
- 打造功能完备的任务调度与时间管理系统:从设计到实现全解析(DeepSeek | 708点数解答 | 2025-06-27 22:04:01)174
- C++ 实现:统计 1 到 n 所有整数中数字 1 的出现个数(字节豆包 | 118点数解答 | 2026-01-14 22:06:25)53
- C++ 实现统计 1 到 n 中数字 1 个数:开发中需小心的三处陷阱 (字节豆包 | 413点数解答 | 2026-01-26 17:56:10)45
- C++ 计算 1 到 n 中数字 1 的出现次数的实现与解析(字节豆包 | 849点数解答 | 2026-04-11 20:24:18)23
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)342
- "Java Code: Uncovering Stock Statistics through CSV File Reading"(字节豆包 | 66点数解答 | 2024-11-13 15:31:04)339