Quartz.net 为 ITrigger 设置时区?

dev*_*546 7 c# quartz-scheduler quartz.net

ITrigger cronTrigger = TriggerBuilder.Create()
            .WithIdentity("trigger1", "group1")
            .WithCronSchedule(0 0/1 * 1/1 * ? *)
            .Build();
Run Code Online (Sandbox Code Playgroud)

这段代码将时间设置为在我想要的前一小时运行,因此它不是在 1:40 运行,而是在 12:40 运行。我可以将 Itrigger 的时区设置为英国时间吗?

Sat*_*kar 5

ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("trigger3", "group1")
.WithCronSchedule(
  "Your CRON Expression comes here", 
  x => x.InTimeZone(TimeZoneInfo.FindSystemTimeZoneById("Your Time Zone Id comes here"))
)
.ForJob("GUID / any unique combination ID comes here ")
.Build()
Run Code Online (Sandbox Code Playgroud)


Kap*_*las 5

也许更干净一点:

ITrigger trigger = TriggerBuilder.Create()
                .StartNow()
                .WithCronSchedule("0 27 15 ? * MON-FRI *", x => x.InTimeZone(TimeZoneInfo.Utc))
                .Build();
Run Code Online (Sandbox Code Playgroud)


Pap*_*apa 4

创建触发器时应该有一个时区选项。像这样的东西:

.inTimeZone(TimeZone.CurrentTimeZone);
Run Code Online (Sandbox Code Playgroud)

上面将采用服务器的当前时区。如果不是英国服务器,这应该可以工作。

TimeZoneInfo.FindSystemTimeZoneById("GMT Standard Time");
Run Code Online (Sandbox Code Playgroud)

这是链接: http://quartz-scheduler.org/documentation/quartz-2.x/tutorials/tutorial-lesson-06