You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python将Discord雪花ID转换为日期?现有代码报错求解决

修复Discord用户ID(雪花ID)转日期的Python代码

你的代码无法正常运行的核心问题是用错了Discord雪花ID的起始纪元值。Discord的雪花ID以2015年1月1日00:00:00 UTC作为时间起点,对应的毫秒级时间戳是1420070400000,而非你代码里的210801244770402304。

以下是修正后的可运行代码:

import datetime

def snowflake_to_datetime(snowflake_id):
    # Discord雪花ID的起始纪元(毫秒)
    discord_epoch = 1420070400000
    # 提取雪花ID中的时间部分并转换为UTC datetime
    timestamp = ((snowflake_id >> 22) + discord_epoch) / 1000
    return datetime.datetime.utcfromtimestamp(timestamp)

代码说明

  • Discord雪花ID的前42位存储的是相对于起始纪元的毫秒数,通过右移22位可以提取这部分值
  • 将提取的毫秒偏移量加上起始纪元的毫秒时间戳,再除以1000转换为秒级时间戳,最后用utcfromtimestamp生成标准UTC时间对象

示例使用:

# 替换为实际的Discord用户ID
user_id = 123456789012345678
creation_time = snowflake_to_datetime(user_id)
print(f"用户创建时间(UTC):{creation_time}")

内容的提问来源于stack exchange,提问作者paulita

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 18:52:08