UUIDv7的20种语言实现

💡 原文中文,约15300字,阅读约需37分钟。
📝

内容提要

UUIDv7是一个128位的唯一标识符,可以按时间排序,精度为1毫秒。它由时间戳、随机部分和版本号组成。本文介绍了20种语言的UUIDv7实现方法,包括JavaScript、Python、SQL、Shell、Java、C#、C++、C、PHP、Go、Rust、Kotlin、Ruby、Lua、Swift等。每种语言都使用不同的方法来生成随机字节、获取时间戳,并将它们填充到数组中,然后设置版本和变量。

🎯

关键要点

  • UUIDv7是一个128位的唯一标识符,可以按时间排序,精度为1毫秒。
  • UUIDv7由时间戳、随机部分和版本号组成。
  • UUIDv7的结构包括48位时间戳、4位版本号、12位随机部分和62位随机生成部分。
  • 本文介绍了20种编程语言中UUIDv7的实现方法,包括JavaScript、Python、SQL等。
  • 每种语言使用不同的方法生成随机字节和获取时间戳,并填充到数组中设置版本和变量。
  • JavaScript使用crypto.getRandomValues()和Date.now()生成UUIDv7。
  • Python使用os.urandom()和time.time()生成UUIDv7。
  • SQL使用strftime()或now()获取时间戳,并使用random()生成随机部分。
  • Shell使用/dev/urandom和date命令生成UUIDv7。
  • Java使用SecureRandom和System.currentTimeMillis()生成UUIDv7。
  • C#使用RandomNumberGenerator和DateTimeOffset.UtcNow生成UUIDv7。
  • C++使用random_device和system_clock获取时间戳生成UUIDv7。
  • C语言使用getentropy()和timespec_get()生成UUIDv7。
  • PHP使用random_bytes()和microtime()生成UUIDv7。
  • Go使用rand.Read()和time.Now()生成UUIDv7。
  • Rust使用Rng.fill()和SystemTime::now()生成UUIDv7。
  • Kotlin使用SecureRandom和Instant.now()生成UUIDv7。
  • Ruby使用SecureRandom.random_bytes()和Time.now生成UUIDv7。
  • Lua使用math.random()和os.time()生成UUIDv7。
  • Swift使用UInt8.random()和Date()获取时间戳生成UUIDv7。
➡️

继续阅读