Quartz.net:FireAtTime 似乎没有按预期工作

发布于 2024-10-21 18:21:21 字数 698 浏览 4 评论 0 原文


我正在尝试在我的一个项目中实现 Quartz.net。
我正在使用 NthIncludedDayTrigger 因为我希望触发器每 5 个月在某个时间触发一次。代码如下:

NthIncludedDayTrigger trigger = new NthIncludedDayTrigger(triggerName, groupName);
trigger.Description = "My trigger";
trigger.StartTimeUtc = startDate;
trigger.EndTimeUtc = endDate;
trigger.IntervalType = NthIncludedDayTrigger.IntervalTypeMonthly;
trigger.N = 5;
trigger.FireAtTime = "09:00";

DateTime? Check = DateTime.Now;
DateTime? When = trigger.GetFireTimeAfter(Check.Value);

如您所见,我希望触发器在上午 9 点运行(我的时区是 GMT => 格林威治)。 当我检查 (GetFireTimeAfter) 下一次点火时间时,我可以看到它是在上午 8 点。 我检查了时区 trigger.TimeZone ,它绝对没问题。 这里有人可以帮忙吗?谢谢。

I am trying to implement Quartz.net in one of my projects.
I am using NthIncludedDayTrigger cause I want my trigger to fire every 5 months at a certain time. Here is the code:

NthIncludedDayTrigger trigger = new NthIncludedDayTrigger(triggerName, groupName);
trigger.Description = "My trigger";
trigger.StartTimeUtc = startDate;
trigger.EndTimeUtc = endDate;
trigger.IntervalType = NthIncludedDayTrigger.IntervalTypeMonthly;
trigger.N = 5;
trigger.FireAtTime = "09:00";

DateTime? Check = DateTime.Now;
DateTime? When = trigger.GetFireTimeAfter(Check.Value);

As you can see I want my trigger to run at 9AM (my timezone is GMT => Greenwich).
When I check (GetFireTimeAfter) the next fire time I can see it is at 8AM.
I've checked the timezone trigger.TimeZone and it is absolutely fine.
Is anyone here who can try to help? Thanks.

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

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

发布评论

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

评论(1

阳光的暖冬 2024-10-28 18:21:21

可以肯定的是,您应该使用 DateTime.UtcNow 而不是 DateTime.Now 来获取具有其 KindDateTime code> 设置为 UTC

Just to be sure, you should use DateTime.UtcNow instead of DateTime.Now to get a DateTime that has its Kind set to UTC.

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