轉載java定時器時間配置,java實現定時器的四種方式

本文目錄一覽:

java定時器執行時間問題

寫個Demo,你要的應該是這個吧。

//獲得當天的日期

SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd “);

Date date = new Date();

//定義開始時間字符串

String timeStr = “08:00:00”;

timeStr = sdf.format(date)+timeStr;

//獲得當天的指定時間的date對象

sdf = new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”);

date = sdf.parse(timeStr);

//判斷今天的執行時間是否已經過去,如果過去則改為明天

if(date.getTime()System.currentTimeMillis()){

date = new Date(date.getTime()+24*60*60*1000);

}

TimerTask task = new TimerTask(){

@Override

public void run() {

//your task

}

};

Timer timer = new Timer();

timer.schedule(task, date, 24*60*60*1000);

java 定時器

配置web.xml

listener

listener-classcom.yohn.timer.ExecTimer/listener

/listener

********************************************************************

java源文件

package com.yohn.timmer;

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileWriter;

import java.io.IOException;

import java.util.Date;

import java.util.Timer;

import java.util.TimerTask;

import javax.servlet.ServletContextEvent;

import javax.servlet.ServletContextListener;

public class SetTimerExecute extends TimerTask implements ServletContextListener

{

public void contextDestroyed(ServletContextEvent arg0)

{

System.out.println(“服務器停止”);

}

public void contextInitialized(ServletContextEvent arg0)

{

System.out.println(“服務器啟動”);

//新建一個時間控件

Timer t = new Timer();

//指定的任務從指定的延遲後開始進行重複的固定延遲執行。

t.schedule(new SetTimerExecute(),1000,1000);

}

public void run()

{

FileWriter fs = null;

BufferedWriter buf = null;

try

{

File f = new File(“/test.txt”);

if (!f.exists())

f.createNewFile();

fs = new FileWriter(f,true);

buf = new BufferedWriter(fs);

//每天上午7點寫入到文件

if(new Date().getHours()==7)

{

SimpleDateFormat myFormatter = new SimpleDateFormat(“yyyy-MM-dd”);

System.out.print(“起床啦!起床啦!”);

f.write(“定時打印:” + myFormatter.format(new Date();));

buf.newLine();

}

}

catch (Exception e)

{

e.printStackTrace();

}

finally

{

try

{

buf.flush();

fs.close();

}

catch (IOException e)

{

}

}

}

}

java定時器 時間間隔

開啟一個線程,run的主代碼如下:

for(int index=0; index30; index++) {

    //do something;

    if(index6)

        TimeUnit.MINUTES.sleep(10);

    else if(index12)

        TimeUnit.MINUTES.sleep(20);

    else

        TimeUnit.HOURS.sleep(1);

    }

原創文章,作者:UOHZQ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/316867.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
UOHZQ的頭像UOHZQ
上一篇 2025-01-09 12:15
下一篇 2025-01-09 12:15

相關推薦

  • 解決docker-compose 容器時間和服務器時間不同步問題

    docker-compose是一種工具,能夠讓您使用YAML文件來定義和運行多個容器。然而,有時候容器的時間與服務器時間不同步,導致一些不必要的錯誤和麻煩。以下是解決方法的詳細介紹…

    編程 2025-04-29
  • Python緩存圖片的處理方式

    本文將從多個方面詳細闡述Python緩存圖片的處理方式,包括緩存原理、緩存框架、緩存策略、緩存更新和緩存清除等方面。 一、緩存原理 緩存是一種提高應用程序性能的技術,在網絡應用中流…

    編程 2025-04-29
  • 想把你和時間藏起來

    如果你覺得時間過得太快,每天都過得太匆忙,那麼你是否曾經想過想把時間藏起來,慢慢享受每一個瞬間?在這篇文章中,我們將會從多個方面,詳細地闡述如何想把你和時間藏起來。 一、一些時間管…

    編程 2025-04-28
  • 計算斐波那契數列的時間複雜度解析

    斐波那契數列是一個數列,其中每個數都是前兩個數的和,第一個數和第二個數都是1。斐波那契數列的前幾項為:1,1,2,3,5,8,13,21,34,…。計算斐波那契數列常用…

    編程 2025-04-28
  • 時間戳秒級可以用int嗎

    時間戳是指從某個固定的時間點開始計算的已經過去的時間。在計算機領域,時間戳通常使用秒級或毫秒級來表示。在實際使用中,我們經常會遇到需要將時間戳轉換為整數類型的情況。那麼,時間戳秒級…

    編程 2025-04-28
  • 如何在ACM競賽中優化開發時間

    ACM競賽旨在提高程序員的算法能力和解決問題的實力,然而在比賽中優化開發時間同樣至關重要。 一、規劃賽前準備 1、提前熟悉比賽規則和題目類型,了解常見算法、數據結構和快速編寫代碼的…

    編程 2025-04-28
  • Python在線編輯器的優勢與實現方式

    Python在線編輯器是Python語言愛好者的重要工具之一,它可以讓用戶方便快捷的在線編碼、調試和分享代碼,無需在本地安裝Python環境。本文將從多個方面對Python在線編輯…

    編程 2025-04-28
  • 使用JavaScript日期函數掌握時間

    在本文中,我們將深入探討JavaScript日期函數,並且從多個視角介紹其應用方法和重要性。 一、日期的基本表示與獲取 在JavaScript中,使用Date對象來表示日期和時間,…

    編程 2025-04-28
  • Java表單提交方式

    Java表單提交有兩種方式,分別是get和post。下面我們將從以下幾個方面詳細闡述這兩種方式。 一、get方式 1、什麼是get方式 在get方式下,表單的數據會以查詢字符串的形…

    編程 2025-04-27
  • 用Pythonic的方式編寫高效代碼

    Pythonic是一種編程哲學,它強調Python編程風格的簡單、清晰、優雅和明確。Python應該描述為一種語言而不是一種編程語言。Pythonic的編程方式不僅可以使我們在編碼…

    編程 2025-04-27

發表回復

登錄後才能評論