久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

java怎么設置每天固定時間

156次閱讀
沒有評論

共計 1875 個字符,預計需要花費 5 分鐘才能閱讀完成。

在 Java 中設置每天固定時間可以使用 Java 的定時任務工具類,如 Timer 和 ScheduledExecutorService。

使用 Timer 類可以在指定時間執(zhí)行某個任務。以下是一個示例代碼:

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

public class DailyTask {public static void main(String[] args) {// 創(chuàng)建一個 Timer 實例 
        Timer timer = new Timer();

        // 獲取當前時間 
        Calendar currentTime = Calendar.getInstance();
        currentTime.setTime(new Date());

        // 設置每天固定時間的小時和分鐘 
        int hour = 9;
        int minute = 0;

        // 設置任務執(zhí)行時間 
        Calendar scheduledTime = Calendar.getInstance();
        scheduledTime.set(Calendar.HOUR_OF_DAY, hour);
        scheduledTime.set(Calendar.MINUTE, minute);
        scheduledTime.set(Calendar.SECOND, 0);

        // 如果當前時間已經(jīng)超過了設定的時間,則將執(zhí)行時間設置為明天的同一時間 
        if (currentTime.after(scheduledTime)) {scheduledTime.add(Calendar.DATE, 1);
        }

        // 計算任務首次執(zhí)行的延遲時間 
        long delay = scheduledTime.getTimeInMillis() - currentTime.getTimeInMillis();

        // 創(chuàng)建一個定時任務 
        TimerTask task = new TimerTask() {@Override
            public void run() {// 在這里定義每天固定時間要執(zhí)行的任務 
                System.out.println(" 任務執(zhí)行時間:" + new Date());
            }
        };

        // 啟動定時任務 
        timer.schedule(task, delay, 24 * 60 * 60 * 1000);
    }
}

使用 ScheduledExecutorService 類也可以實現(xiàn)每天固定時間的任務調(diào)度。以下是一個示例代碼:

import java.time.LocalTime;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class DailyTask {public static void main(String[] args) {// 創(chuàng)建一個 ScheduledExecutorService 實例 
        ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);

        // 設置每天固定時間的小時和分鐘 
        int hour = 9;
        int minute = 0;

        // 獲取當前時間 
        LocalTime currentTime = LocalTime.now();

        // 計算任務首次執(zhí)行的延遲時間 
        long initialDelay = LocalTime.of(hour, minute).toSecondOfDay() - currentTime.toSecondOfDay();
        if (initialDelay < 0) {initialDelay += 24 * 60 * 60; // 添加一天的秒數(shù) 
        }

        // 創(chuàng)建一個定時任務 
        Runnable task = () -> {// 在這里定義每天固定時間要執(zhí)行的任務 
            System.out.println(" 任務執(zhí)行時間:" + LocalTime.now());
        };

        // 啟動定時任務 
        scheduler.scheduleAtFixedRate(task, initialDelay, 24 * 60 * 60, TimeUnit.SECONDS);
    }
}

上述代碼中,使用 LocalTime 類來表示時間,計算任務首次執(zhí)行的延遲時間,以及在任務中獲取當前時間。使用 ScheduledExecutorService 的 scheduleAtFixedRate 方法來啟動定時任務,并指定任務的首次執(zhí)行延遲時間和執(zhí)行周期。

丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!

正文完
 
丸趣
版權聲明:本站原創(chuàng)文章,由 丸趣 2023-12-13發(fā)表,共計1875字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網(wǎng)絡搜集發(fā)布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 梨树县| 将乐县| 鲁甸县| 德惠市| 鹤山市| 青州市| 屯昌县| 探索| 双柏县| 江西省| 天祝| 随州市| 大同市| 禹城市| 天气| 舞阳县| 台江县| 张北县| 会同县| 马关县| 赞皇县| 桦南县| 夏津县| 遂昌县| 桂阳县| 怀化市| 柳江县| 喀什市| 阿图什市| 江永县| 行唐县| 天长市| 成都市| 富阳市| 贵阳市| 丹阳市| 康乐县| 阳泉市| 海宁市| 镇宁| 汉源县|