Дата Java в миллисекундах
Я сохраняю сообщения из облака амазонки и заказываю их по метке на отсортированной карте.
Я анализирую временную метку из облака следующим кодом:
Date timestamp = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss.SSS'Z'", Locale.ENGLISH).parse(time);
а затем я храню в них на сортированной карте с ключом, являющимся датой.
Проблема в том, что дата только сводится к точности секунд.
Я могу отправить несколько сообщений за 1 секунду, поэтому мне нужно, чтобы их заказывали с точностью до миллисекунды. Есть ли структура данных, которая позволяет это?
Ответы
Ответ 1
Хорошо, если ваш источник имеет более высокое разрешение, чем 1 секунду. Похоже на шаблон, но вы не показали нам никакого ввода.
Date
- это всего лишь обертка вокруг long
миллисекунд с 1970-01-01. Так что у вас это уже есть. Date.getTime()
вернет это значение с точностью до миллисекунды.
Почему вы думаете, что Date имеет только одну секунду точности? Date.compareTo(Date anotherDate)
сравнивается с миллисекундным уровнем.
Поэтому ваш SortedMap должен работать нормально, если вы не делаете что-то странное.
Ответ 2
Я не уверен, что вы это сделали, но вы можете создать свой собственный компаратор и использовать его.
В качестве дополнительной заметки, в зависимости от настройки ваших приложений, вы можете быть осторожны с тем, как вы используете SimpleDateFormat, есть некоторые проблемы с ним.