Tôi muốn tạo UUID dựa trên thời gian trong java - java.util.UUID.randomUUID() genrates một phiên bản UUID 4. Cách tạo UUID phiên bản 1 (dựa trên thời gian)? Có một thư viện riêng biệt cho điều đó hoặc là nó một số cách cung cấp trong Java 7 API và tôi đang thiếu nó.Cách tạo UUID theo thời gian?
Trả lời
Hãy rất cẩn thận khi sử dụng com.eaio.uuid.UUID, nếu bạn cần tạo GUID theo thời gian khác với thời gian hiện tại, vì điều này sẽ luôn tạo cùng một UUID cho thời gian đã định. Vì vậy, nếu dữ liệu của bạn có yêu cầu để tạo UUID, nơi các bản ghi có thể có cùng một thời gian, điều này sẽ tạo ra cùng một UUID.
Chúng tôi cần điều này để tạo UUID cho bản ghi, được tạo trước và cũng nhiều bản ghi cùng một lúc, chúng tôi đã cố gắng tinh chỉnh nó bằng cách cố gắng sử dụng UUIDGen.createTime(). Chúng tôi thấy rằng nó có một tác dụng phụ để thay đổi thời gian cho các hồ sơ không đúng thứ tự. Nếu yêu cầu sau để tạo UUID
có dấu thời gian cũ hơn yêu cầu trước đó, bạn sẽ có một số UUID
, dựa trên dấu thời gian của yêu cầu trước đó.
Sau khi phân tích xong, chúng tôi phải quay trở lại để tạo ra UUID
tại thời điểm tạo, để chúng tôi không phải chuyển nó làm đối số. Bất kỳ giải pháp nào chúng tôi đưa ra để tạo ra UUID
sau đó, mọi giải pháp đều có một nhược điểm.
String timeuuid = com.datastax.driver.core.utils.UUIDs.timeBased().toString();
có một cái nhìn tại https://docs.datastax.com/en/drivers/java/2.0/com/datastax/driver/core/utils/UUIDs.html
Xem thêm https://datastax-oss.atlassian.net/browse/JAVA-109 – Vadzim
FasterXML Java UUID Generator (JUG)
https://github.com/cowtowncoder/java-uuid-generator
UUID uuid = Generators.timeBasedGenerator().generate();
- 1. Có cách nào để tạo lại UUID dựa trên thời gian/nút trong PHP không?
- 2. Trích xuất thời gian từ UUID v1 trong python
- 3. Ghi thời gian nhóm theo ngày, không theo thời gian
- 4. tạo gui chỉnh sửa theo thời gian trong java
- 5. Làm thế nào để tạo dấu thời gian theo dõi
- 6. Làm cách nào để tải lại cài đặt được tạo động theo thời gian tiếp theo?
- 7. XSLT tạo UUID
- 8. Tạo UUID với GWT
- 9. Tạo UUID qua Maven
- 10. Cách tạo GUID/UUID bằng SDK iPhone
- 11. Cách tạo Long duy nhất bằng UUID
- 12. Thời gian tạo HWND
- 13. Cách tạo dòng thời gian với LaTeX?
- 14. Cách tạo điều khiển dòng thời gian?
- 15. Phân chia thời gian theo số
- 16. Tạo thời gian ngày chỉ theo tháng và theo ngày, không năm
- 17. PostgreSQL: Thời gian tạo bảng
- 18. Tạo UUID 128Bit với chuỗi
- 19. Giám sát MySQL theo thời gian thực
- 20. Tăng ngày theo một khoảng thời gian
- 21. Điều chỉnh múi giờ theo thời gian
- 22. Cách tạo Chế độ xem DatePicker chỉ hiển thị ngày và không theo thời gian
- 23. Tạo khoảng thời gian theo giờ/phút bằng cách sử dụng gấu trúc
- 24. Theo dõi thời gian cho Redmine?
- 25. Cách chuyển đổi thời gian chính xác theo múi giờ?
- 26. Nhóm Hibernate theo khoảng thời gian
- 27. MySQL tạo thời gian và thời gian cập nhật dấu thời gian
- 28. WebService tiền tệ theo thời gian thực
- 29. ColdFusion - Tạo thời gian từ số phút
- 30. Theo dõi mức âm thanh micrô theo thời gian thực
Không, Java SDK không bao gồm một lớp UUID khác nhau hơn 'UUID '. –
Tuy nhiên, lớp UUID cung cấp các phương thức như dấu thời gian công khai() để lấy dấu thời gian từ UUID nếu nó dựa trên thời gian .. nhưng không có phương pháp để tạo ra nó – dogfish
Kiểm tra JUG @ http://wiki.fasterxml.com/ JugHome, nó có thể làm loại 1. –