java中timer的使用
来源:互联网 发布:dnf刷称号软件 编辑:程序博客网 时间:2024/05/22 15:39
使用案例一:启动时不执行,在每天固定的时间执行
import java.text.SimpleDateFormat;import java.util.Date;import java.util.Timer;import java.util.TimerTask;/** * 定时任务测试 */public class TaskTest {//日期格式化到天private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd");//日期格式化到秒private static final SimpleDateFormat DATE_TIME_FORMAT = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");//一天的毫秒表示private static final long DAY = 24 * 60 * 60 * 1000;/** * 定时任务. * @param timeStr */public static void task(String timeStr) throws Exception {// 获得当天的日期Date date = new Date();// 定义开始时间字符串timeStr = DATE_FORMAT.format(date) + " "+ timeStr;// 获得当天的指定时间的date对象date = DATE_TIME_FORMAT.parse(timeStr);// 判断今天的执行时间是否已经过去,如果过去则改为明天if (date.getTime() < System.currentTimeMillis()) {date = new Date(date.getTime() + DAY);}Timer timer = new Timer();timer.schedule(new MyTask(), date, DAY);}/** * 定时任务信息 */private static class MyTask extends TimerTask {@Overridepublic void run() {System.out.println(new Date()+"----------------");}};/** * 定义测试. */public static void main(String[] args) throws Exception {// 每天早上一点半执行,需要提前两分钟被运行String timeStr = "01:30:00";task(timeStr);}}
方案二:启动不执行,在指定的某个时间执行一次,尔后固定频率执行
import java.text.SimpleDateFormat;import java.util.Date;import java.util.Timer;import java.util.TimerTask;/** * 测试 */public class TaskTest {//格式化到日private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd");//格式化到秒private static final SimpleDateFormat DATE_TIME_FORMAT = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");/** * 定时任务. * @param timeStr * @param period * remark <br> */public static void task(String timeStr,long period) throws Exception{Date date = new Date();//定义开始时间字符串timeStr = DATE_FORMAT.format(date)+" "+timeStr;//获得当天的指定时间的date对象date = DATE_TIME_FORMAT.parse(timeStr);//判断今天的执行时间是否已经过去,如果过去则改为明天if(date.getTime()<System.currentTimeMillis()){ date = new Date(date.getTime()+24*60*60*1000);}Timer timer = new Timer();timer.schedule(new MyTask(),date,period); }/** * 定时任务信息 * @version 1.0 */private static class MyTask extends TimerTask{ @Override public void run() {System.out.println(new Date() + "----------------"); } };/** * 定义测试. * @param args * @throws Exception * remark <br> */public static void main(String[] args) throws Exception { //每天晚上八点执行,需要提前两分钟被运行 String timeStr = "20:00:00"; long period = 1000;//ms task(timeStr,period);}}
- java中Timer的使用
- Java中Timer的使用
- Java中Timer的使用
- Java中Timer的使用
- Java中Timer的使用
- java中timer的使用
- java中Timer的使用
- Java中Timer,TimerTask的使用
- Java中Timer,TimerTask的使用
- java中Timer使用的简要说明
- java中Timer使用的简要说明
- java中timer类的使用
- java中定期执行--Timer的使用
- Java中Timer和TimerTask的使用
- JAVA中定时器Timer的使用
- java中Timer定时器的使用
- Java中Timer和TimerTask的使用
- java中Timer定时器的使用
- Android MD5加密
- 在Struts2中定义自己的Interceptor
- Hdu--N!--1042
- UVA 10010 - Where's Waldorf? 水题一道
- 连接各种数据库方式速查表
- java中timer的使用
- HDU 1996汉诺塔VI
- iOS ASIHTTPRequest详解
- Web开发之一:Web UI技术综述
- Win 2K的磁盘空间配额管理及分配方法
- UVa 11234 - Expressions
- 项目中对网络请求的封装,加入了全局缓存机制
- Web开发之二:什么是前端、什么是后端
- web 富文本编辑器总结