假设我传递了像2009-07-13T18:00:00
我必须使用Java创建cron
表达式以获得* * 18 13 07 2009
?
你能帮帮我吗?
答案 0 :(得分:1)
您的crontab(5)
表达式:
* * 18 13 07 2009
将在第13个月的第18天,即本周的第2009天每小时执行一次。 :)
2009年7月13日,是星期一。每周执行一次crontab
条目,以此为出发点:
0 18 * * 1
这将在每周的第一天的18:00执行。 (星期日是0
。)
cron
没有“开始”和“停止”日期的概念。事情只会在将来执行。当您希望它们停止时,您将删除该条目。它是非常原语,类似“本月的最后一个星期五”之类的东西很麻烦,但是五个小数字可以做到这一点真是太棒了。
答案 1 :(得分:0)
你的cron格式不清楚。 * * 18 13 07 2009不是有效的cron条目。
您可以使用SimpleDateFormat将值转换为所需的格式。
因此,在您的情况下,您可以使用以下内容。
String s = "2009-07-13T18:00:00";
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-ddTHH:mm:ss");
Date d = sf.parse();
//now convert to the format you want
sf = new SimpleDateFormat("* * HH dd mm yyyy");
String cronEntry = sf.format(d);
但在此之前,请检查您的cron条目,并确切了解如何设置cron时序。您提供的示例无效。