2011-09-20 3 views
6

私はこのQuartz.netでは何時に対処していますか?

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

のようなものを設定したときに、私は午前5時のためにそれを設定しています疑問に思って。これは午前5時ですか、サーバ時間かUTC時間ですか?

答えて

4

UTC時間を使用しますが、これは正しくはdocumentedではありません。

を編集します。実際には両方が使用されているようです。 0.9より前のバージョンでは現地時間が使用され、使用後のバージョンではUTC(source)であるため、最新バージョンを使用している場合はUTCでなければなりません。

+0

は、上記の移行ガイドでUTCまたは現地時間の一切の言及を見つけることができません試してみてください...多分Quartz.Netは、ドキュメントを移動しますか? – w4ik

+0

@ w4ikはい彼らはドキュメントを移動したようですが、別のコピーを見つけることができるかどうかを確認します –

4

午前5:00(UTC時)です。公開Quartz.NET APIは常にexpects倍(UTC形式)です。ちょうどFYI、MakeDailyTriggerは、次の形式のCronTriggerにただのショートカットです:

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

面白いですが、私はMakeDailyTriggerについて知らなかったので、上記のようにstring.formatコードで終わりました。私はQuartzがより良い文書を欲しかったです。 – nocarrier

1

私はあなたがQuartz.Netローカルタイムを期待しているMakeDailyTrigger方法で時間の引数に時間を入力したときと信じて...内部クォーツ.netはこの時間をUTCに変換しますが、時間引数に5を入力すると、トリガーは午前5時に発生します。

この

 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

ちょうどFYI、Quartz.net 2.0.1はUTC時間をサポートしませんが、これは2.1.0で修正されました。私はこれを難しい方法で学んだ。 – nocarrier

関連する問題