2012-11-07 74 views
2

我的一個類Event將有一個實例字段,稱爲timeStamp。現在,我有另一個課程,將根據其他算法設置timeStamp,這在這裏並不真正相關。如何在變量中存儲時間?

我的問題是什麼類型我應該將這個timeStamp存儲在?從我迄今爲止研究的內容來看,我認爲它應該以毫秒爲單位進行計算,因此可能將其存儲在double中。

基本上Clock類我有以下格式模擬時間:hh:mm:ss。然而,由於它是我正在開發的離散事件模擬,所以它從事件跳轉到事件,其由timeStamp值確定,即每個事件對象具有存儲在PrioityQueue中的timeStamp值。所以我考慮將timeStamp的格式與Clock相同,我想這將涉及到創建一個新類TimeStamp,然後變成timestamp的類型。或者我應該讓時鐘模擬時間以毫秒爲單位?

你對此有何看法?我不確定以最高效/乾淨的方式來實現這一點。

+0

什麼用的DateTime是怎麼回事?啊,對不起,我想我正在考慮[Joda Time中的DateTime類](http://joda-time.sourceforge.net/apidocs/org/joda/time/DateTime.html)。 –

回答

2

當自日期以毫秒存儲日期時,應該使用long

不需要double,因爲您對毫秒級不感興趣。

您不能使用int,因爲最大的int值只有足夠大才能表示以millis爲單位的大約一個月。

你可以得到這樣那樣的值:

long millisSinceEpoch = Calendar.getInstance().getTimeInMillis();

+0

我們可以避免浮動比較不精確! –

2

將毫秒存儲在long中。

您可以使用Joda Time中的DateTime類對結果數字執行各種錯綜複雜的操作。 This overload允許您將毫秒值直接插入到DateTime對象中。