如何将基于时间的 java.util.UUID 转换为 DateTIme

How to covert time based java.util.UUID to DateTIme

我正在使用 com.datastax.driver.core.utils.UUIDs 生成基于时间的 UUID,但我无法将其转换回日期时间:

我尝试使用 org.joda.time 但任何其他软件包都可以。

new org.joda.time.DateTime(com.datastax.driver.core.utils.UUIDs.timeBased.timestamp) // 4328915-05-22T15:34:30.000+00:00
new org.joda.time.DateTime()  //2015-06-25T13:28:07.249+00:00

正如您从 UUIDJavaDoc 中看到的那样,生成的时间戳以 100 纳秒为单位,自 UTC 时间 1582 年 10 月 15 日午夜开始计算。

org.joda.time.DateTime(long instant) 需要自 1970-01-01T00:00:00Z 以来的毫秒时间戳,请参阅 JavaDoc .