Java 在天亮前后计算时,表达式是否存在问题?
我们有一个带有以下值的Cron作业表达式,用于在每个周日巴西时间上午12点运行某些作业:Java 在天亮前后计算时,表达式是否存在问题?,java,cron,scheduled-tasks,quartz-scheduler,dst,Java,Cron,Scheduled Tasks,Quartz Scheduler,Dst,我们有一个带有以下值的Cron作业表达式,用于在每个周日巴西时间上午12点运行某些作业: expression=0 0 0 ? * SUN, expressionType=Cron, timeZone=America/Sao_Paulo 我们使用quartz(2.2)的CronExpression来查找给定时间之后的下一个有效日期。方法用于CronExpression类的getNextValidTimeAfter 当我们试图计算10月29日的值时,下一个星期日是11月1日,但CronExp
expression=0 0 0 ? * SUN,
expressionType=Cron,
timeZone=America/Sao_Paulo
我们使用quartz(2.2)的CronExpression来查找给定时间之后的下一个有效日期。方法用于CronExpression类的getNextValidTimeAfter
当我们试图计算10月29日的值时,下一个星期日是11月1日,但CronExpression返回的下一个星期日是11月8日。我认为这是因为夏令时在11月的第一个星期日结束
使用CronExpression的代码:
DateTime date = new DateTime();
Date nextValidDate = null;
CronExpression cronExpression = new CronExpression("0 0 0 ? * SUN");
cronExpression.setTimeZone(TimeZone.getTimeZone("America/Sao_Paulo"));
nextValidDate = cronExpression.getNextValidTimeAfter(date.toDate());
注意:我们在美国东部地区的AWS EC2上运行此代码
有人能帮我理解这个DST是如何把下周日作为日期的吗。CronExpression与夏令时是否存在任何已知问题