2011-09-20 9 views

Odpowiedz

4

Używa czasu UTC, jednak nie jest to prawidłowe documented.

Edytuj: w rzeczywistości wygląda tak, jakby użył obu! Wersje wcześniejsze niż 0.9 wykorzystanego czasu lokalnego, te po użyciu UTC (source), więc powinno to być UTC, dopóki używana jest najnowsza wersja.

+0

nie może znaleźć żadnej wzmianki UTC lub czas lokalny w przewodniku migracji wspomniano wyżej ... może Quartz.Net przeniósł doc? – w4ik

+0

@ w4ik Tak, wydaje się, że przenieśli swoje dokumenty, zobaczą, czy mogę znaleźć inną kopię. –

4

5:00 czasu UTC. Public Quartz.NET API zawsze expects razy w formacie UTC. Wystarczy FYI, MakeDailyTrigger to tylko skrót do CronTrigger z następującym formacie:

string.Format("0 {0} {1} ? * *", minute, hour) 
+0

Śmieszne, nie wiedziałem o MakeDailyTrigger, więc skończyłem z kodem string.format dokładnie jak wyżej. Chciałbym, żeby Quartz miał lepszą dokumentację. – nocarrier

1

Wierzę, że po wprowadzeniu godziny na godzinę argument metody MakeDailyTrigger że Quartz.Net spodziewa czasu lokalnego ... wewnętrznie Quartz .net konwertuje ten czas na UTC, ale jeśli wprowadzisz 5 w argumencie godziny, wyzwalacz uruchomi się o 5:00 czasu lokalnego.

Spróbuj

 Trigger trigger = 
      TriggerUtils.MakeDailyTrigger("trigger",5,0);    

     var ttimes = TriggerUtils.ComputeFireTimes(trigger, null, 1); 
     foreach (DateTime ttime in ttimes) 
     { 
      Console.WriteLine(ttime); 
      'ttime is in UTC - so for EST, ttime.Hour would be 10AM 
      'however ttime.ToLocalTime().Hour would be 5AM 
     } 
+0

Po prostu FYI, Quartz.net 2.0.1 nie obsługuje czasu UTC, ale zostało to naprawione w wersji 2.1.0. Nauczyłem się tego na własnej skórze. – nocarrier

Powiązane problemy