2017-03-01 91 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時間。如果這個粒度級別足夠了(換句話說,你需要哪一天但不是那一天的時間),那麼Peter的帖子就會告訴你如何從週期數中得到一天。還有其他方法可以找出何時寫入不使用循環編號的條目。如果您希望我採用其他方式,請告訴我。