setCronExpression(CronExpression) 和 setCronExpression(String) 之间的区别

发布于 2024-09-11 13:02:13 字数 484 浏览 10 评论 0原文

来自 Quartz Scheduler javadocs 用于类 CronTrigger 的方法 setTimeZone

如果在此方法之后调用 setCronExpression(CronExpression),则 CronExpression 上的 TimeZone 设置将“获胜”。但是,如果调用 setCronExpression(String) 使用此方法后,此方法应用的时区将保留在 效果,因为 String cron 表达式不携带时区!

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

From the Quartz Scheduler javadocs for the method setTimeZone of class CronTrigger:

If setCronExpression(CronExpression) is called after this method, the TimeZone setting on the CronExpression will "win". However if setCronExpression(String) is called
after this method, the time zone applied by this method will remain in
effect, since the String cron expression does not carry a time zone!

What's the difference in calling both setters in different sequences?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

虐人心 2024-09-18 13:02:14

存在三种情况 -

  1. 您调用 setTimeZone(),然后调用 setCronExpression(CronExpression)。将应用与 CronExpression 关联的时区。

  2. 您调用 setTimeZone(),然后调用 setCronExpression(String)。由于 String cron 表达式没有关联的时区,因此将应用 setTimeZone() 指定的时区。

  3. 您调用 setCronExpression(CronExpression) 或 setCronExpression(String),然后调用 setTimeZone()。将应用 setTimeZone() 方法指定的时区。

There are three scenarios-

  1. You call setTimeZone() followed by setCronExpression(CronExpression). The time zone associated with the CronExpression will apply.

  2. You call setTimeZone() followed by setCronExpression(String). The time zone specified by setTimeZone() will apply since the String cron expression doesn't have a time zone associated.

  3. You call setCronExpression(CronExpression) or setCronExpression(String) followed by setTimeZone(). The time zone specified by setTimeZone() method will apply.

机场等船 2024-09-18 13:02:13

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

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

这有道理吗?

What this means is that if you call setCronExpression(CronExpression) when you have already set a TimeZone using setTimeZone, the TimeZone you specified will be overwritten by the CronExpression's TimeZone. This is because the CronExpression class contains a TimeZone.

However, the String cron expression does not contain any time zone information - therefore the time zone you specified in setTimeZone will remain in effect.

Does that make sense?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文