2017-03-01 4 views

答えて

2

サイクル番号は、エポックからの日数(または時間)です。あなたのエポックが0の場合、タイムスタンプが

Date date = new Date(TimeUnit.DAYS.toMillis(cycle)); 

は、あなたが時間単位のサイクルを持っている場合は、上記の時間と曜日を置き換えることができ

long cycle = TimeUnit.MILLIS(System.currentTimeMillis()).toDays() 

と逆の操作を行うことができます。

組み込み関数を使用すると、任意のロールサイクルでこれを行うことができます。

int cycle = rollCycle.current(() -> time, epoch); 
+0

ありがとうございました!これをRollCycleインターフェイスに追加することを検討しますか? – vasquez

+0

@vasquezこれが何のために使用されているかを明確にすることができますか?別の方法がありますか? –

+1

キューファイルのアーカイブと索引付け。私はStoreListenerを見ましたが、現在はいくつかのQueueインスタンスを使用して書き込みと読み取りを行います.1〜2日のようにアーカイブを遅らせたいと思っています。 – vasquez

1

あなたの質問に1語で答えるには、「できない」ことはできませんが、それを意識する価値があります。毎日のローリングであるデフォルトを使用している場合、クロニクルキューは毎日データの新しいキューファイルを作成します。サイクル番号は、ファイルする単語(時刻ではない)と直接関係します。注:サイクル番号から日を計算するための計算は、クロニクルキューに設定されたEPOCH時間を考慮しなければなりません。この粒度のレベルで十分であれば(言い換えれば、その日にはその日は欲しくないが)、ピーターのポストはサイクル番号からその日を得る方法を教えてくれる。サイクル番号を使用しないエントリがいつ書き出されたかを調べる他の方法もあります。あなたが私にこれらの他の方法をカバーしたいのかどうか教えてください。

関連する問題