之前用eclipse有段代码是让每天一个固定的时间点发邮件的。有一次因为升级服务器把程序暂停。重启后就不能按照时间发邮件,而是每天在我重启它的那个时间发邮件了,百思不得其解,求帮助。代码段如下:
Calendar date = Calendar.getInstance();
date.set(
Calendar.DAY_OF_WEEK,
Calendar.TUESDAY
);
date.set(Calendar.AM_PM, Calendar.AM);
date.set(Calendar.HOUR, 7);
date.set(Calendar.MINUTE, 0);
date.set(Calendar.SECOND, 0);
date.set(Calendar.MILLISECOND, 0);
Timer timer_RDR = new Timer();
timer_RDR.schedule(new RDR_Email(), date.getTime(), daily_period );这个Timer的运行有什么讲究吗?谢谢
Calendar date = Calendar.getInstance();
date.set(
Calendar.DAY_OF_WEEK,
Calendar.TUESDAY
);
date.set(Calendar.AM_PM, Calendar.AM);
date.set(Calendar.HOUR, 7);
date.set(Calendar.MINUTE, 0);
date.set(Calendar.SECOND, 0);
date.set(Calendar.MILLISECOND, 0);
Timer timer_RDR = new Timer();
timer_RDR.schedule(new RDR_Email(), date.getTime(), daily_period );这个Timer的运行有什么讲究吗?谢谢
Date date = new Date();//定义开始时间字符串
String timeStr = jFmtTextField_ftpruntime.getText();
timeStr = sdf.format(date) + timeStr;
//获得当天的指定时间的date对象
sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
try {
date = sdf.parse(timeStr);
} catch (Exception e) {
}//判断今天的执行时间是否已经过去,如果过去则改为明天
String str=sdf.format(date);
if (date.getTime() < System.currentTimeMillis()) {
date = new Date(date.getTime() + 24 * 60 * 60 * 1000);
}
str=sdf.format(date);Timer timer = new Timer();
timer.schedule(new MyTimerTask(), date, 24 * 60 * 60 * 1000);
logger.info("开始执行定时任务... ....");
showRunningDialog(timer);
谢谢,我先去试一下,关键已经在production了,不管随便弄了
我的代码里有好几个timer,一个是设每天早上7点,还有一个设每周一晚上11点。我弄了之后每周一晚上11点的那个也变成每周一早上8:39了,我是不是把程序关掉,在早上7点以前启动就可以了呢?
这个是每天运行一次,24 * 60 * 60 * 1000*7就是每周运行一次了............