16

Amazon クラウドからのメッセージを保存し、並べ替えられたマップでタイムスタンプ順に並べ替えています。

次のコードを使用して、クラウドからタイムスタンプを解析しています。

Date timestamp = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss.SSS'Z'", Locale.ENGLISH).parse(time);

そして、日付をキーにしてソートされたマップに保存しています。問題は、日付が秒単位の精度しかないことです。1 秒間に複数のメッセージを送信できるため、ミリ秒単位の精度で並べ替える必要があります。これを可能にするデータ構造はありますか?

4

3 に答える 3

26

ソースの解像度が 1 秒よりも高い限り。パターンからそのように見えますが、入力例を示していません。

Datelong1970-01-01 から 1 ミリ秒の単なるラッパーです。だから、あなたはすでにそれを持っています。Date.getTime()ミリ秒の精度でそれを返します。

日付の精度が 1 秒しかないのはなぜだと思いますか? Date.compareTo(Date anotherDate)ミリ秒レベルで比較します。したがって、奇妙なことをしていない限り、SortedMap は正常に動作するはずです。

于 2012-06-14T11:03:18.090 に答える
1

これを行ったかどうかはわかりませんが、独自のコンパレータを作成して使用できます。

補足として、アプリケーションのセットアップによっては、 SimpleDateFormatの使用方法に注意する必要がある場合があります。これにはいくつかの問題があります。

于 2012-06-14T11:04:35.817 に答える