跳到正文

推特 ID 转日期工具

Sorsa 推文 ID 转日期工具直接从 ID 或链接读取 X 推文的发布时刻:UTC 和你所在时区的日期时间、ISO 8601 和 Unix 时间。可以粘贴单个 ID 或一整份列表,也可以把日期转回 ID。免费,在浏览器中运行。Sorsa 推文 ID 转日期工具可通过链接或 ID 显示任意 X 推文的发布时间。免费,在浏览器中运行。

每行一个

免费,无需注册,在浏览器中运行。

日期和时间会显示在这里

粘贴推文链接或 ID,或一份列表,每行一个。

如何查看推文的发布时间

X 在推文下方显示日期,精确到分钟,并使用你所在的时区。ID 包含更多信息:确切的时刻,任意时区,任意数量的推文,已删除的推文也可以。

X 显示什么

  • 推文下方的日期和时间,精确到分钟
  • 只有你所在的时区
  • 一次一条,且推文仍然存在

ID 能提供什么

  • 确切的时刻,精确到毫秒
  • UTC、你的时间、ISO 8601 和 Unix 时间
  • 整份列表,以及已删除的推文

三个步骤

  1. 复制链接或 ID

    ID 是推文链接中 /status/ 后面的一长串数字。整个链接也可以。

  2. 粘贴一个或一份列表

    每行一个,可来自表格、数据集或笔记。粘贴时每行都会转换。

  3. 读取时间

    UTC 和你的时区、ISO 8601 和 Unix 时间,都可以复制。列表会变成表格和 CSV。

Twitter Snowflake ID 如何存储日期

自 2010 年 11 月 4 日起,X 用名为 Snowflake 的系统生成每个推文 ID:这是一个 64 位数字,时间排在最前面。

计算方法

time = (ID >> 22) + 1288834974657

ID = (time − 1288834974657) << 22

示例,逐步计算

ID
1234567890123456789
右移 22 位
294,343,922,167
加上纪元 1,288,834,974,657
1,583,178,896,824
转为日期
2020 年 3 月 2 日(周一)19:54:56.824 UTC

X 的纪元 1288834974657 是 2010 年 11 月 4 日 01:42:54.657 UTC。由于时间位于最高位,ID 越大,推文越新,这 41 位可以用到 2080 年 7 月。近几年生成的账号 ID 使用相同格式;要查任意账号的创建日期,推特账号注册时间查询会直接从 X 读取。更多关于 X 数字的内容,请看 Twitter ID 的工作原理。

用 Python、JavaScript 和 SQL 把推文 ID 转为日期

同样的计算写成代码,可用于脚本、笔记本或数据库。每段代码都会输出上面的示例。

请把 ID 读取为文本或 64 位整数:JavaScript 的 number 会对这么长的 ID 四舍五入。

from datetime import datetime, timezone

def tweet_time(tweet_id):
    ms = (int(tweet_id) >> 22) + 1288834974657
    return datetime.fromtimestamp(ms / 1000, tz=timezone.utc)

print(tweet_time("1234567890123456789"))
# 2020-03-02 19:54:56.824000+00:00

把日期转为推文 ID,用于搜索

这个计算也可以反过来:把某一时刻的毫秒数放回最高位,就能得到 X 在该时刻可能生成的最小 ID。它不是一条推文,只是标记了那个时刻。

  • since_id:此时刻之后的推文
  • max_id:此时刻之前的推文

X 搜索支持这两个参数,所以用两个这样的 ID 就能把搜索精确到某个时间窗口,精确到秒;since: 和 until: 则只能按整天筛选。其余查询条件可以在推特高级搜索中构建,或用按日期搜索推文查看账号任意一天的推文。

from:username since_id:2006515713438646272 max_id:2006530812933046272
一小时内的推文,2026 年 1 月 1 日 00:00 至 01:00 UTC

批量转换一整份推文 ID 列表

从电子表格或数据集中粘贴一列 ID 或链接。表格按日期排序,标记不是推文 ID 的行,并可下载为 CSV。

  • 研究人员 在研究之前,先确定一批推文链接的日期
  • 记者 把推文按时间排序,精确到秒
  • 开发者 用 ID 核对数据集或日志中的日期

CSV 的列

input post_id created_at_utc unix_ms unix_seconds local_time time_zone post_url

五个 ID,最新的在前
推文 ID日期(UTC)时间(UTC)
1923456789012345678May 16, 202519:13:29
1801234567890123456Jun 13, 202412:46:00
1704598341293015040Sep 20, 202320:48:09
1612894531578404864Jan 10, 202319:29:57
1580661436132757504Oct 13, 202220:47:08

通过 API 获取 ID 对应的推文

转换工具给你时间,Sorsa API 给你推文:文本、点赞、转发、回复、查看数、媒体和作者的用户资料,/tweet-info-bulk 每次请求支持 100 个 ID 或链接。它也能读取 2010 年 11 月之前的推文及其日期。

  • 100每次请求的推文数
  • 低至 $0.014每 1,000 条推文
  • 20每秒请求数,所有套餐
领取 100 次免费请求

无需绑卡,永不过期。

一次调用就是一次请求,无论返回多少内容,失败的请求从不计费:Sorsa API 价格。想不写代码把账号或搜索的推文保存为文件,请用导出推文。

请求

POST https://api.sorsa.io/v3/tweet-info-bulk
ApiKey: YOUR_API_KEY

{"tweet_links": [
    "https://x.com/i/status/1234567890123456789",
    "https://x.com/i/status/1580661436132757504",
    "https://x.com/i/status/1612894531578404864"
]}

关于推文 ID 和日期的常见问题

转换工具

如何查看一条推文是什么时候发布的?

把它的链接或 ID 粘贴到上方。转换工具会读取 ID 中存储的时刻,并以 UTC、你的时区和 Unix 时间显示,精确到毫秒。

它会打开推文吗?

不会。它在你的浏览器中根据 ID 算出日期,不向 X 发送请求,所以对已删除的推文和离线状态都有效。想阅读推文本身,请在推特查看器中打开。

可以查询已删除推文的日期吗?

可以,只要你有它的 ID 或链接。时间是 ID 的一部分,与推文是否还存在无关。

日期有多准确?

精确到毫秒:这是 X 生成推文时写入 ID 的时刻。X 自己只显示到分钟。

可以同时转换多个推文 ID 吗?

可以。每行粘贴一个:表格会按日期排序,并可下载为 CSV。

Snowflake ID

什么是 Twitter Snowflake ID?

自 2010 年 11 月 4 日起 X 用于推文的 64 位 ID 格式。前 41 位保存以毫秒为单位的时间,然后是机器编号和序列。这就是 ID 随时间增长、并能转换为日期的原因。详见 Twitter ID 的工作原理。

Twitter 的纪元是什么?

1288834974657:2010 年 11 月 4 日 01:42:54.657 UTC。Snowflake 从这里开始计时,不是 1970 年,所以转换工具要把它加回去。

为什么对 2010 年 11 月之前的推文无效?

更早的推文使用顺序 ID,其中不含时间。如果推文还存在,Sorsa API 仍能读取它及其日期。

可以把用户 ID 转为日期吗?

近几年生成的账号 ID 使用相同格式,所以转换工具可以算出日期;更早、更短的 ID 不含时间。要查任意账号的创建日期,请用推特账号注册时间查询。

由日期生成的 ID 是真实的推文吗?

不是。由日期生成的 ID 是 X 在该时刻可能生成的最小 ID:只是搜索中 since_id 和 max_id 的标记。

API

如何获取完整的推文,而不只是日期?

Sorsa API 的 /tweet-info-bulk 每次请求按 ID 或链接读取 100 条推文,包含文本、数据、媒体和作者,每 1,000 条推文 $0.014 起。首先有 100 次免费请求,无需绑卡。

读取 ID 对应的推文

每次请求 100 条推文的文本、数据、媒体和作者,每 1,000 条 $0.014 起。

领取 100 次免费请求

无需绑卡,永不过期。自 2022 年起累计处理请求超 60 亿次。

如何查看推文的发布时间

X 显示的日期精确到分钟。ID 里保存着确切的时刻,对任何帖子都是如此,包括已删除的。

Twitter Snowflake ID 如何存储日期

自 2010 年 11 月 4 日起,每个推文 ID 都是一个 Snowflake:时间在前的 64 位数字。

计算方法

time = (ID >> 22) + 1288834974657

ID = (time − 1288834974657) << 22

用 Python、JavaScript 和 SQL 把推文 ID 转为日期

同样的计算写成代码。每段代码都会输出上面的示例。

请把 ID 读取为文本或 64 位整数:JavaScript 的 number 会对这么长的 ID 四舍五入。

把日期转为推文 ID,用于搜索

把一个时刻放回高位比特,你得到的是 X 当时能生成的最小 ID:它是一个标记,不是一条帖子。

from:username since_id:2006515713438646272 max_id:2006530812933046272
一小时内的推文,2026 年 1 月 1 日 00:00 至 01:00 UTC
  • since_id:此时刻之后的推文
  • max_id:此时刻之前的推文

其中两个 ID 能把 X 搜索精确到秒级的时间窗口。

批量转换一整份推文 ID 列表

粘贴一列 ID 或链接:得到按日期排序的表格和一份 CSV。

五个 ID,最新的在前
  • 2025 年 5 月 16 日 19:13:291923456789012345678
  • 2024 年 6 月 13 日 12:46:001801234567890123456
  • 2023 年 9 月 20 日 20:48:091704598341293015040
  • 2023 年 1 月 10 日 19:29:571612894531578404864
  • 2022 年 10 月 13 日 20:47:081580661436132757504

通过 API 获取 ID 对应的推文

Sorsa API 直接读取帖子本身,每次请求 100 个 ID,附文本、数据、媒体和作者。

  • 100每次请求的推文数
  • 起 $0.014每 1,000 条帖子
  • 20每秒请求数,所有套餐
领取 100 次免费请求

无需绑卡,永不过期。

关于推文 ID 和日期的常见问题

转换工具

如何查看一条推文是什么时候发布的?

把它的链接或 ID 粘贴到上方。转换工具会读取 ID 中存储的时刻,并以 UTC、你的时区和 Unix 时间显示,精确到毫秒。

它会打开推文吗?

不需要。它在你的浏览器里根据 ID 算出日期,不向 X 发送请求,所以已删除的帖子和离线状态都能用。想读帖子本身,请在推特查看器中打开。

可以查询已删除推文的日期吗?

可以,只要你有它的 ID 或链接。时间是 ID 的一部分,与推文是否还存在无关。

日期有多准确?

精确到毫秒:这是 X 生成推文时写入 ID 的时刻。X 自己只显示到分钟。

可以同时转换多个推文 ID 吗?

可以。每行粘贴一个:表格会按日期排序,并可下载为 CSV。

Snowflake ID

什么是 Twitter Snowflake ID?

自 2010 年 11 月 4 日起 X 用于帖子的 64 位 ID 格式。它的前 41 位存放毫秒时间,后面是机器编号和序列号。所以 ID 会随时间增长,也能转换为日期。更多见Twitter ID 的工作原理。

Twitter 的纪元是什么?

1288834974657:2010 年 11 月 4 日 01:42:54.657 UTC。Snowflake 从这里开始计时,不是 1970 年,所以转换工具要把它加回去。

为什么对 2010 年 11 月之前的推文无效?

更早的推文使用顺序 ID,其中不含时间。如果推文还存在,Sorsa API 仍能读取它及其日期。

可以把用户 ID 转为日期吗?

近几年创建的账号 ID 采用同样格式,所以转换器能推算出日期;较早、较短的 ID 不含时间。想查任意账号的创建日期,请用推特账号注册时间查询。

由日期生成的 ID 是真实的推文吗?

不是。由日期生成的 ID 是 X 在该时刻可能生成的最小 ID:只是搜索中 since_id 和 max_id 的标记。

API

如何获取完整的推文,而不只是日期?

Sorsa API 的 /tweet-info-bulk 每次请求按 ID 或链接读取 100 条推文,包含文本、数据、媒体和作者,每 1,000 条推文 $0.014 起。首先有 100 次免费请求,无需绑卡。

读取 ID 对应的推文

每次请求 100 条推文的文本、数据、媒体和作者,每 1,000 条 $0.014 起。

领取 100 次免费请求

无需绑卡,永不过期。自 2022 年起累计处理请求超 60 亿次。