Java 日期到毫秒

2022-09-03 05:20:53

我正在存储来自亚马逊云的消息,并在排序的地图中按时间戳对它们进行排序。

我使用以下代码从云中解析时间戳:

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

然后我将它们存储在排序的地图中,密钥是日期。问题在于日期只能归结为秒精度。我可以在1秒内发送多条消息,因此我需要以毫秒级精度对它们进行排序。是否有允许这样做的数据结构?


答案 1

好吧,只要您的源具有高于1秒的分辨率。从模式上看是这样的,但你还没有向我们展示任何输入示例。

Date只是自1970-01-01以来一毫秒的包装。所以你已经有了。 将以毫秒级精度返回该值。longDate.getTime()

为什么你认为 Date 只有一秒的精度? 在毫秒级别上进行比较。因此,您的排序地图应该可以正常工作,除非您正在做一些奇怪的事情。Date.compareTo(Date anotherDate)


答案 2

我不确定您是否已经这样做了,但是您可以创建自己的比较器并使用它。

作为旁注,根据您的应用程序设置,您可能需要小心使用SimpleDateFormat的方式,它存在一些问题。