2012-11-07 73 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对象中。