I create my login id for a user using the following code
String login = me.prettyprint.cassandra.utils.TimeUUIDUtils.getUniqueTimeUUIDinMillis().toString();
Now i have a requirement to convert this login back to long so I am using the following code
long timeStamp = java.util.UUID.fromString(login).timestamp();
Now i want my login back from the timeStamp. How can i do this.?
final long NUM_100NS_INTERVALS_SINCE_UUID_EPOCH = 0x01b21dd213814000L;
UUID u1 = TimeUUIDUtils.getUniqueTimeUUIDinMillis();
final long t1 = u1.timestamp();
long tmp = (t1 - NUM_100NS_INTERVALS_SINCE_UUID_EPOCH) / 10000;
UUID u2 = TimeUUIDUtils.getTimeUUID(tmp);
long t2 = u2.timestamp();
System.out.println(u2.equals(u1));
System.out.println(t2 == t1);
This works!!