如何在变量中存储时间?

时间:2012-11-07 00:09:00

标签: java datetime time milliseconds

我的一个班级Event将有一个名为timeStamp的实例字段。现在,我有另一个类,它将根据其他算法设置timeStamp,这个算法在这里并不相关。

我的问题是,我应该将此timeStamp存储在类型中吗?从我到目前为止研究的结果来看,我的印象是它应该以毫秒计算,因此可能会将其存储在double中。

基本上Clock类我用以下格式模拟时间:hh:mm:ss。但是,由于它是我正在开发的离散事件模拟,它会从事件跳转到事件,它由timeStamp值确定,即每个事件对象都有一个timeStamp值存储在{{1 }}。所以我考虑以与PrioityQueue相同的格式存储timeStamp,我想这会让我创建一个新的类Clock然后成为TimeStamp的类型。或者我应该让时钟以毫秒为单位模拟时间?

您对此有何看法?我不确定以最有效/最干净的方式实现这一点。

2 个答案:

答案 0 :(得分:2)

将毫秒存储在long中。

您可以使用Joda Time中的DateTime类来对结果数字执行各种复杂性。 This overload允许您将毫秒值直接插入DateTime对象。

答案 1 :(得分:2)

如果日期自纪元以来毫秒存储,则应使用long

不需要double,因为你对一毫秒的分数不感兴趣。

您不能使用int,因为最大int值仅足以表示大约一个月的毫秒数。

你可以得到这样的价值:

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