java - 如何在 "For Every 1.00 am of Friday"中为 cron 作业指定时间(以毫秒为单位)?

标签 java time cron scheduled-tasks jobs

嗨,我正在尝试编写一个类(class)来安排在特定时间的工作。这是代码,

public void test(){
        Timer timer = new Timer();
        Calendar date = Calendar.getInstance();
        date.set(Calendar.HOUR,0);
        date.set(Calendar.MINUTE, 0);
        date.set(Calendar.SECOND, 2);
        date.set(Calendar.MILLISECOND,0);

        //schedule to run on 1 am every friday. 
        timer.schedule(new JobRunner(), date.getTime(),1*0*0*0);
    }

请帮忙解决最后一行,我不知道如何在其中指定时间。

谢谢

最佳答案

我希望这会有所帮助。

    static final long period = 7*24*60*60*1000;//one week

public void test(){
    Timer timer = new Timer();
    Calendar date = Calendar.getInstance();
    date.set(Calendar.HOUR_OF_DAY, 1);
    date.set(Calendar.MINUTE, 0);
    date.set(Calendar.SECOND, 0);
    date.set(Calendar.MILLISECOND,0);
    date.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
    //in case you run the batch before date
    if (date.before(Calendar.getInstance())) {
        date.add(Calendar.DAY_OF_YEAR, 7);
    }        

    long delay =  date.getTimeInMillis() - new Date().getTime();              
    //schedule to run on 1 am every friday. 
    timer.schedule(new JobRunner(), delay, period);              
}

问候!

关于java - 如何在 "For Every 1.00 am of Friday"中为 cron 作业指定时间(以毫秒为单位)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14837568/

相关文章:

java - 两个具有不同参数的同名函数,一个没有作用域解析运算符,另一个有

java - Netbeans 中的 Lambda 表达式问题

linux - Cronjob 调用 Shell 脚本发送空邮件

linux - 这是 cron 作业的正确格式吗?

php - 每月执行 2 次和 3 次 CRON?

java - 如何获取 android 命名空间中的所有类?

c - c 中的 time_t 用于进程子进程

C++ 将十进制小时转换为小时、分钟和秒

Ruby - 按小时/天操作时间/日期时间?

java - 使用 Hibernate 从 Oracle DB 获取 500K+ 行