2

私のクラスの 1 つに、Eventというインスタンス フィールドがありますtimeStamptimeStampここで、ここではあまり関係のない他のアルゴリズムに従って を設定する別のクラスがあります。

私の質問は、これをどのタイプに保存すればよいtimeStampですか? 私がこれまでに調査したことから、ミリ秒単位で計算し、doubleおそらくに保存する必要があるという印象を受けました。

基本的に、Clock私が持っているクラスは、hh:mm:ss の形式で時間をシミュレートします。ただし、私が開発しているのは離散イベント シミュレーションであるため、イベントからイベントへとジャンプします。これは、値によって決定されます。timeStampつまり、各イベント オブジェクトtimeStampは に格納される値を持ちますPrioityQueuetimeStampそこで、 をと同じ形式で保存することを考えました。これには、 の型になるClock新しいクラスを作成する必要があると思います。または、クロックをミリ秒単位でシミュレートする必要がありますか?TimeStamptimestamp

これについてどう思いますか?これを実装するための最も効率的/クリーンな方法についてはわかりません。

4

2 に答える 2

2

ミリ秒を に格納しますlong

Joda Timeのクラスを使用DateTimeして、結果の数値に対してあらゆる種類の複雑な操作を実行できます。 このオーバーロードDateTimeを使用すると、ミリ秒の値をオブジェクトに直接プラグインできます。

于 2012-11-07T00:15:58.060 に答える
2

日付がエポックからのミリ秒単位で保存される場合は、long.

doubleミリ秒の分数には興味がないので、は必要ありません。

int最大の int 値はミリ単位で約 1 か月を表すのに十分な大きさしかないため、 an は使用できません。

次のような値を取得できます。

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

于 2012-11-07T00:19:06.850 に答える