2016-12-01 58 views
1

Cassandra具有timeuuid類型,並且有函數可以爲「now」創建timeuuid。還有文件記載的方式,從時間管理中恢復時間。然而,有沒有辦法從joda DateTime獲得timeuuid?這感覺應該存在。從jvm上的datetime獲取基於時間的UUID

+0

檢查我的答案http://stackoverflow.com/a/40459854/2320144 –

回答

1

查看UUIDGen class。看起來您可以使用以下方法從DateTime生成UUID(使用getMillis()方法)。

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

這似乎是卡桑德拉本身,而不是在客戶端庫的一部分。 – ashic

+0

如果您更喜歡基於客戶端的代碼,則有[UUID](https://github.com/datastax/java-driver/blob/3.x/driver-core/src/main/java/com/datastax/driver/ core/utils/UUIDs.java#L229-L275)類作爲java驅動程序的一部分。請參閱[UUIDs.startOf()](http://docs.datastax.com/en/drivers/java-dse/1.1/com/datastax/driver/core/utils/UUIDs.html#startOf-long-)和[ UUIDs.endOf()](http://docs.datastax.com/en/drivers/java-dse/1.1/com/datastax/driver/core/utils/UUIDs.html#endOf-long-)。將Joda DateTime轉換爲毫秒。 –