私のprevious questionに続いて、私はCronExpressionをサブクラス化し、getSetをpublicに変更しました。このメソッドはint型を取得し、私はcron式を含むStringを持っています。この表現に関する情報を取得するにはどうすればいいですか(hour \ days \ etc)? getSetメソッドに渡す必要があるのは何ですか?あるいは別の方法を使うべきでしょうか?これは私にとっては非常に不明です。Quartz CronExpressionはすべての式パラメータを取得します。
2
A
答えて
4
CronExpression
との問題は、それを述べていても:
はUnixライクなcronの式のパーサと評価を提供します。
APIは、あいまいであり、protected
メソッドの下に隠されています。これまでのところ、汎用のCRON式パーサではありません。しかし、あなたは簡単に解析ロジックを活用することができますいくつかの調整で:
class MyCronExpression extends CronExpression {
public MyCronExpression(String cronExpression) throws ParseException
{
super(cronExpression);
}
public TreeSet<Integer> getSeconds()
{
return super.getSet(CronExpression.SECOND);
}
public TreeSet<Integer> getMinutes()
{
return super.getSet(CronExpression.MINUTE);
}
public TreeSet<Integer> getHours()
{
return super.getSet(CronExpression.HOUR);
}
//...
}
は使用方法:
final MyCronExpression cronExpression = new MyCronExpression("0 30 9,12,15 * * ?");
System.out.println(cronExpression.getSeconds()); //0
System.out.println(cronExpression.getMinutes()); //30
System.out.println(cronExpression.getHours()); //9, 12, 15
あなたはここに正規表現がある...正規表現を使用して手動でCRON式を解析するために誘惑されるかもしれませんjob_scheduling_data_2_0.xsd
クォーツスキーマから:
(((([0-9]|[0-5][0-9]),)*([0-9]|[0-5][0-9]))|(([\*]|[0-9]|[0-5][0-9])(/|-)([0-9]|[0-5][0-9]))|([\?])|([\*]))[\s](((([0-9]|[0-5][0-9]),)*([0-9]|[0-5][0-9]))|(([\*]|[0-9]|[0-5][0-9])(/|-)([0-9]|[0-5][0-9]))|([\?])|([\*]))[\s](((([0-9]|[0-1][0-9]|[2][0-3]),)*([0-9]|[0-1][0-9]|[2][0-3]))|(([\*]|[0-9]|[0-1][0-9]|[2][0-3])(/|-)([0-9]|[0-1][0-9]|[2][0-3]))|([\?])|([\*]))[\s](((([1-9]|[0][1-9]|[1-2][0-9]|[3][0-1]),)*([1-9]|[0][1-9]|[1-2][0-9]|[3][0-1])(C)?)|(([1-9]|[0][1-9]|[1-2][0-9]|[3][0-1])(/|-)([1-9]|[0][1-9]|[1-2][0-9]|[3][0-1])(C)?)|(L(-[0-9])?)|(L(-[1-2][0-9])?)|(L(-[3][0-1])?)|(LW)|([1-9]W)|([1-3][0-9]W)|([\?])|([\*]))[\s](((([1-9]|0[1-9]|1[0-2]),)*([1-9]|0[1-9]|1[0-2]))|(([1-9]|0[1-9]|1[0-2])(/|-)([1-9]|0[1-9]|1[0-2]))|(((JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC),)*(JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC))|((JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)(-|/)(JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC))|([\?])|([\*]))[\s]((([1-7],)*([1-7]))|([1-7](/|-)([1-7]))|(((MON|TUE|WED|THU|FRI|SAT|SUN),)*(MON|TUE|WED|THU|FRI|SAT|SUN)(C)?)|((MON|TUE|WED|THU|FRI|SAT|SUN)(-|/)(MON|TUE|WED|THU|FRI|SAT|SUN)(C)?)|(([1-7]|(MON|TUE|WED|THU|FRI|SAT|SUN))?(L|LW)?)|(([1-7]|MON|TUE|WED|THU|FRI|SAT|SUN)#([1-7])?)|([\?])|([\*]))([\s]?(([\*])?|(19[7-9][0-9])|(20[0-9][0-9]))?| (((19[7-9][0-9])|(20[0-9][0-9]))(-|/)((19[7-9][0-9])|(20[0-9][0-9])))?| ((((19[7-9][0-9])|(20[0-9][0-9])),)*((19[7-9][0-9])|(20[0-9][0-9])))?)
それとも誰かがJavaのためのより良い汎用CRON式パーサーを知っていますか?
関連する問題
- 1. 式ツリーlinqパラメータの値を取得しますか?
- 2. ラムダ式パラメータを取得する方法
- 3. パラメータは、私は、パラメータを取得していますWinフォーム
- 4. Rails:URLからすべてのパラメータを取得するには?
- 5. AJAXは、MVC方式渡していないパラメータを取得
- 6. Quartzでクラスタ内で現在実行中のすべてのジョブのリストを取得します
- 7. Zendのアクション後にすべてのパラメータを取得しますか?
- 8. JerseyのRootResourceからすべてのpostパラメータを取得する
- 9. このcronExpressionは正しいですか?
- 10. CloudformテンプレートのすべてのAWSリソースの出力パラメータを取得
- 11. サブドメインをパラメータとして取得する
- 12. Qt/C++はすべてのアプリケーションウィンドウのXidを取得します
- 13. セレンはフォームのすべての要素を取得します
- 14. GridViewはすべての行のデータを取得します
- 15. すべてのエンティティを取得してナビゲーションプロパティを取得
- 16. ActiveMQはキューからすべてのメッセージを取得します
- 17. 条件式を使用して特定の文字を含むすべてのエンティティを取得しますか?
- 18. すべてのリストを取得せずにサイトコレクションのすべてのサイトを取得しますか?
- 19. Cocoa + Quartz Newbie:NSImageでピクセルの色を取得して画面をオフにする
- 20. JSoupはすべてのアイテムを取得しませんか?
- 21. Quartz 2D:CGColorSpaceCreateLab:範囲パラメータの目的は?
- 22. C#SQLストアドプロシージャ(挿入) - パラメータを渡してパラメータを取得する
- 23. SQLパラメータを取得してasp.netレポートに表示します
- 24. Linqすべてのコントロールを取得します(注文した)
- 25. パラメータを持つすべてのSSRSサブスクリプションのリストを取得するクエリ
- 26. CassandraはPHP SimpleCassieを使用してすべてのキーを取得します
- 27. TreeViewコントロールのすべてのツリーノードのリストを取得します。
- 28. ClingのすべてのDLNAルートストレージディレクトリを取得しますか?
- 29. admin以外のすべてのユーザー名を取得します
- 30. ブラックベリーのすべてのPersistentStoreキーを取得します。
exmale: 'System.out.println(cronExpression.getMinutes());のパラメータの1つを印刷すると、なぜ私は30という数字しか得られません。 '? intとして取得する方法はありますか? – user590586
@ user590586:これは 'TreeSet'を返します。これは' toString() 'が実装されている方法です... –
私はreplaceAllをしなければなりませんか?他のオプションはありませんか? – user590586