資料載入中

Norman 的雜七雜八

Python TimeUUID

參考這一篇:
什麼時候讓用 time UUID,連結網址 

StackOverflow 有人提供了一段 code:
連結網址


public static String reorderTimeUUId(String originalTimeUUID)
    {
        StringTokenizer tokens = new StringTokenizer(originalTimeUUID, "-");
        if (tokens.countTokens() == 5)
        {
            String time_low = tokens.nextToken();
            String time_mid = tokens.nextToken();
            String time_high_and_version = tokens.nextToken();
            String variant_and_sequence = tokens.nextToken();
            String node = tokens.nextToken();

            return time_high_and_version + '-' + time_mid + '-' + time_low + '-' + variant_and_sequence + '-' + node;

        }

        return originalTimeUUID;
    }


把它翻成 python :

def getTimeUUID(uuidVar)
    # ref: http://stackoverflow.com/questions/8713873/is-python-uuid1-sequential-as-timestamps
    import uuid
    if not isinstance(uuidVar, uuid.UUID):
        uuidVar = uuid.uuid1()
    tmp = str(uuidVar)

    tokens = tmp.split("-")
    if len(tokens) == 5:
        time_low, time_mid, time_high_and_version, variant_and_sequence, node = tokens
        return time_high_and_version + '-' + time_mid + '-' + time_low + '-' + variant_and_sequence + '-' + node
    return tmp




原理是原本的 UUID (uuid1) 組合是:
time_low – time_mid – time_high_and_version – variant_and_sequence – node

轉成
time_high_and_version – time_mid – time_low – variant_and_sequence – node

這樣產生出來的 UUID 就可以按時間排序了.

三重湯城園區 Go

  • 使用 time UUID 進行時間排序
  • Python 轉換 UUID 的程式碼
  • UUID 組合的原理解析
  • StackOverflow 上的 UUID 解決方案
  • 時間排序的 UUID 生成方法
https://innstory.com/story-PythonTimeUUID-557

上一篇
 PythonPragmaticUnicode

下一篇
免費電子書下載 
  • 哲煜

    這段關於 time UUID 的轉換原理挺有意思的。能把 UUID 按時間排序,對一些需要排序的應用來說應該還是挺實用的。不過,具體使用時還是要看需求。
    2025-12-19 下午 8 點回覆

發表留言

作者簡介

重新pickup本能中


推薦閱讀

作者其他相關類別故事

Linux 連線數調校.

Linux 連線數調校.

蘇恆永 10 年又 244 天 1.6K

最近常常遇到連線數太多(因為底層 WebService 太忙了). web 最後連不上的問題. ...

Python Pragmatic Unicode

Python Pragmat…

蘇恆永 10 年又 47 天 1.5K

記錄一下 Python Pragmatic Unicode

CentOS 5 更新 openssh 7.1p2 及 openssl 1.0.1s

CentOS 5 更新 op…

蘇恆永 9 年又 281 天 2.4K

最近被 highlight openssh 必須更新至 7.2p2. CentOS5 真是有夠古老...


推薦閱讀

這個地址也發生了其他故事

CentOS 5 更新 openssh 7.1p2 及 openssl 1.0.1s

CentOS 5 更新 op…

蘇恆永 9 年又 281 天 2.4K

最近被 highlight openssh 必須更新至 7.2p2. CentOS5 真是有夠古老...

免費電子書下載

免費電子書下載

蘇恆永 10 年又 20 天 1.3K

太晚看到了, 每天都有免費程式設計相關的電子書可以下載 話說, 出版業現在真辛苦, 不曉得這樣的免...


附近景點

這個地址-三重湯城園區-附近還有甚麼?

  • 學海書院(今高氏宗祠)
  • 林本源園邸
  • 鄞山寺(汀州會館)
  • 新莊文昌祠
  • 滬尾小學校禮堂
  • 前清淡水關稅務司官邸