Подтвердить что ты не робот

Дата Java в миллисекундах

Я сохраняю сообщения из облака амазонки и заказываю их по метке на отсортированной карте.

Я анализирую временную метку из облака следующим кодом:

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

а затем я храню в них на сортированной карте с ключом, являющимся датой. Проблема в том, что дата только сводится к точности секунд. Я могу отправить несколько сообщений за 1 секунду, поэтому мне нужно, чтобы их заказывали с точностью до миллисекунды. Есть ли структура данных, которая позволяет это?

4b9b3361

Ответ 1

Хорошо, если ваш источник имеет более высокое разрешение, чем 1 секунду. Похоже на шаблон, но вы не показали нам никакого ввода.

Date - это всего лишь обертка вокруг long миллисекунд с 1970-01-01. Так что у вас это уже есть. Date.getTime() вернет это значение с точностью до миллисекунды.

Почему вы думаете, что Date имеет только одну секунду точности? Date.compareTo(Date anotherDate) сравнивается с миллисекундным уровнем. Поэтому ваш SortedMap должен работать нормально, если вы не делаете что-то странное.

Ответ 2

Я не уверен, что вы это сделали, но вы можете создать свой собственный компаратор и использовать его.

В качестве дополнительной заметки, в зависимости от настройки ваших приложений, вы можете быть осторожны с тем, как вы используете SimpleDateFormat, есть некоторые проблемы с ним.