public final class UUIDs extends Object
|Modifier and Type||Method and Description|
Creates a "fake" time-based UUID that sorts as the biggest possible version 1 UUID generated at the provided timestamp.
Creates a new random (version 4) UUID.
Creates a "fake" time-based UUID that sorts as the smallest possible version 1 UUID generated at the provided timestamp.
Creates a new time-based (version 1) UUID.
Return the unix timestamp contained by the provided time-based UUID.
public static UUID random()
public static UUID timeBased()
timeuuidCassandra type. In particular the generated UUID includes the timestamp of its generation. Note that there is no way to provide your own timestamp. This is deliberate, as we feel that this does not conform to the UUID specification, and therefore don't want to encourage it through the API. If you want to do it anyway, use the following workaround:
Random random = new Random(); UUID uuid = new UUID(UUIDs.startOf(userProvidedTimestamp).getMostSignificantBits(), random.nextLong());If you simply need to perform a range query on a
timeuuidcolumn, use the "fake" UUID generated by
public static UUID startOf(long timestamp)
timeuuidcolumn. The UUID created by this method are not unique and as such are not suitable for anything else than querying a specific time range. In particular, you should not insert such UUID. "True" UUID from user-provided timestamps are not supported (see
timeBased()for more explanations). Also, the timestamp to provide as parameter must be a unix timestamp (as returned by
Date.getTime()), not a UUID 100-nanoseconds interval since 15 October 1582. In other words, given a UUID
uuid, you should never do
startOf(unixTimestamp(uuid)). Lastly, please note that Cassandra's timeuuid sorting is not compatible with
UUID.compareTo(java.util.UUID)and hence the UUID created by this method are not necessarily lower bound for that latter method.
timestamp- the unix timestamp for which the created UUID must be a lower bound.
public static UUID endOf(long timestamp)
startOf(long)for explanations about the intended usage of such UUID.
timestamp- the unix timestamp for which the created UUID must be an upper bound.
public static long unixTimestamp(UUID uuid)
uuid.timestamp(). More precisely, a version 1 UUID stores a timestamp that represents the number of 100-nanoseconds intervals since midnight, 15 October 1582 and that is what
uuid.timestamp()returns. This method however converts that timestamp to the equivalent unix timestamp in milliseconds, i.e. a timestamp representing a number of milliseconds since midnight, January 1, 1970 UTC. In particular the timestamps returned by this method are comparable to the timestamp returned by
uuid- the UUID to return the timestamp of.
uuidis not a version 1 UUID.