Generate a time-based UUID v1 using timestamp and random node ID.
Code
Utilitiesrequire 'securerandom'
now = Time.now
time_greg = (now.to_f * 10_000_000).to_i + 0x01b21dd213814000
time_low = (time_greg & 0xffffffff).to_s(16).rjust(8, '0')
time_mid = ((time_greg >> 32) & 0xffff).to_s(16).rjust(4, '0')
time_hi = (((time_greg >> 48) & 0x0fff) | 0x1000).to_s(16).rjust(4, '0')
clock_seq = (SecureRandom.random_number(0x3fff) | 0x8000).to_s(16).rjust(4, '0')
node = SecureRandom.hex(6)
return "#{time_low}-#{time_mid}-#{time_hi}-#{clock_seq}-#{node}"Server
More Ruby Snippets
Generate UUID v3
Generate a name-based UUID v3 using MD5 hashing of namespace and name.
Generate UUID v4
Generate a random UUID v4 (Universally Unique Identifier).
Generate UUID v5
Generate a name-based UUID v5 using SHA-1 hashing of namespace and name.
Generate UUID v6
Generate a reordered time-based UUID v6 with improved sortability for databases.
Generate UUID v7
Generate a Unix timestamp-based UUID v7 with millisecond precision, ideal for database primary keys.
Array Difference
Find elements in the first array that are not present in the second array.