2

タイムゾーンを含むジョブにクォーツトリガーを設定する必要があります。たとえば、2012年8月27日の15:00ヨーロッパ/アムステルダムのタイムゾーンに設定する必要があります。私のサーバーはUTCで動作します。

SimpleTriggerisが必要なものだと思いますが、タイムゾーンを設定する方法がわかりません。

何か案が?

4

2 に答える 2

2

SimpleTrigger の起動時間は、構成された開始時間に基づいています。

開始時刻は java.util.Date として指定されます。これは実際には、1970 年 1 月 1 日 00:00:00.000 GMT からのミリ秒単位で指定された時刻です。

2010 年 10 月 23 日 8:13:45 EST にコードが new Date() を実行し、結果を開始時刻として設定すると、Quartz は開始時刻としてミリ秒単位の値 (1287839625000) を保存し、トリガーはスケジューラが実行されているタイムゾーンに関係なく、2010 年 10 月 23 日 8:13:45 EST に発生します。

java.util.Calendar を使用して特定のタイム ゾーンの日付と時刻を定義し、それを Date に変換すると、まったく同じように機能します。2010 年 10 月 23 日 8:13:45 とCalendar のタイム ゾーンが EST の場合、結果のミリ秒の値は再び 1287839625000 になります。ただし、タイム ゾーンが PST の場合 (ただし、日時は同じ)、ミリ秒の値は 1287850425000 (3 時間後) になります。

Quartz が実行されているシステムクロックが正しく設定され、オペレーティングシステムによって UTC として維持されていることを確認してください。

于 2012-09-24T13:51:25.240 に答える