2010-07-26 64 views
1

从Quartz调度javadocsCronTrigger类的方法setTimeZone差(字符串)

如果setCronExpression(CronExpression)的该方法中,在CronExpression时区设置之后称为将“赢”。但是,如果在此方法之后调用了setCronExpression(String) ,则此方法应用的时区将保持 的效果,因为String cron表达式不带有时区!

以不同的顺序调用两个setter有什么区别?

回答

1

有三种scenarios-

  1. 你叫setTimeZone(),其次是setCronExpression(CronExpression)。与CronExpression关联的时区将适用。

  2. 您可以先调用setTimeZone(),然后再调用setCronExpression(String)。由setTimeZone()指定的时区将被应用,因为String cron表达式没有关联时区。

  3. 您可以调用setCronExpression(CronExpression)或setCronExpression(String)后跟setTimeZone()。由setTimeZone()方法指定的时区将应用。

2

这意味着如果您在使用setTimeZone设置了TimeZone时调用了setCronExpression(CronExpression),则您指定的TimeZone将被CronExpression的TimeZone覆盖。这是因为CronExpression类包含一个TimeZone。

但是,String cron表达式不包含任何时区信息 - 因此您在setTimeZone中指定的时区将保持有效。

这有道理吗?

+0

谢谢你的努力Phill,我现在明白了:)但是samG的答案对我来说更容易理解! – craftsman 2010-07-26 08:06:10