如何生成基于时间的UUID?

我想在java中生成基于时间的UUID – java.util.UUID.randomUUID()创build一个UUID版本4.如何生成版本1(基于时间)的UUID? 有没有一个单独的库,或者它是如何提供的在Java 7 API,我错过了它。

使用com.eaio.uuid.UUID时要非常小心,如果您需要按照当前时间以外的其他时间生成GUID,因为这将始终在给定时间内生成相同的UUID。 所以如果你的数据有要求生成UUID,那么logging可能有相同的时间,这将产生相同的UUID。

我们需要这个来为logging生成UUID,这些logging是在前面创build的,同时也是多个logging,我们试图通过尝试使用UUIDGen.createTime()来调整它。 我们发现它有一个副作用来改变logging失序的时间。 如果随后的创buildUUID请求的时间戳比先前的请求更早,那么最终会得到一个基于先前请求的时间戳的UUID

经过所有的分析,我们不得不简单地在创build时重新创buildUUID ,这样我们就不必将它作为parameter passing。 无论我们想出什么解决scheme来生成UUID ,每一个都有一个缺点。

 String timeuuid = com.datastax.driver.core.utils.UUIDs.timeBased().toString(); 

看看https://docs.datastax.com/en/drivers/java/2.0/com/datastax/driver/core/utils/UUIDs.html