2016-12-01 3 views
1

Cassandra a un type timeuuid, et il y a des fonctions pour créer un timeuuid pour "maintenant". Il existe également des moyens documentés de récupérer le temps d'un timeuuide. Cependant, existe-t-il un moyen d'obtenir un timeuuid à partir d'un DateHeure joda? On dirait que cela devrait exister.Obtenir l'UUID basé sur le temps à partir de datetime sur le jvm

+0

vérifier ma réponse http://stackoverflow.com/a/40459854/2320144 –

Répondre

1

Consultez le UUIDGen class. Il semble que vous pourriez utiliser ce qui suit pour générer un UUID à partir d'un DateTime (en utilisant la méthode getMillis()).

DateTime someDateTime = ...; 
UUID timeUUID = UUIDGen.getTimeUUID(someDateTime.getMillis()); 
+0

Cela semble faire partie de Cassandra lui-même, plutôt que dans la bibliothèque cliente. – ashic

+0

Si vous préférez le code client, il existe un [UUID] (https://github.com/datastax/java-driver/blob/3.x/driver-core/src/main/java/com/datastax/driver/ core/utils/UUIDs.java # L229-L275) dans le cadre du pilote java. Voir [UUIDs.startOf()] (http://docs.datastax.com/fr/drivers/java-dse/1.1/com/datastax/driver/core/utils/UUIDs.html#startOf-long-) et [ UUIDs.endOf()] (http://docs.datastax.com/fr/drivers/java-dse/1.1/com/datastax/driver/core/utils/UUIDs.html#endOf-long-). Convertir le Joda DateTime en millisecondes. –