如何通过 ID 查出推文的发布时间
找到 ID
就是任意帖子链接末尾那串长数字:x.com/user/status/1234567890123456789。也可以直接粘贴整个链接。
粘贴一个或多个
最多 100 个 ID 或链接,每行一个。
查看时间
你会得到精确到毫秒的创建时间,按 UTC 和你所在的时区显示。需要的话可以把列表下载为 CSV。
已删除的帖子也能用。时间就存在 ID 本身里,所以帖子不需要还存在。
推特 Snowflake ID 是如何存储日期的
从 2010 年 11 月 4 日起,X 用一套名为 Snowflake 的系统生成帖子 ID。每个 ID 是一个 64 位数字,由三部分组成:
- 帖子的创建时间,即从 X 自定义纪元开始的毫秒数;
- 生成它的服务器 ID;
- 序列号,用于区分同一毫秒内创建的帖子。
因为时间存在最高位,所以把 ID 右移 22 位再加上纪元,就能把时间取回来:
milliseconds since 1970 = (ID >> 22) + 1288834974657
- ID
1234567890123456789 - 右移 22 位
294343922167 - 加上纪元 1,288,834,974,657
1583178896824 - =2020 年 3 月 2 日 19:54:56.824 UTC
例如,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 账号,其 ID 也使用同样的格式。要查一个账号的注册日期,账号注册时间查询可以直接读出来。
把日期转换成推文 ID 用于搜索
反过来也行。把毫秒数移回高位,就能得到那个时刻可能的最小 ID:
ID = (milliseconds since 1970 − 1288834974657) << 22
X 搜索支持 since_id: 和 max_id: 语法,大多数 API 也支持。用两个边界 ID,就能把搜索精确限定到某个时间窗口,精确到秒。这比按整天计算的 since: 和 until: 更精确。完整的查询可以用高级搜索生成器拼出来。
批量把推文 ID 转换成日期
一次粘贴最多 100 个 ID 或链接,可以来自表格、数据集或收藏的帖子列表。表格按日期排序,标出无效的行,并可下载为包含 ID、UTC 时间、ISO 时间和 Unix 毫秒的 CSV。研究人员用它给链接合集标注日期,记者用它整理时间线,开发者用它核对数据集。
| 20 | 没有时间戳:早于 2010 年 11 月 4 日 | |
| 1234567890123456789 | Mar 2, 2020, 19:54:56 | 1583178896824 |
| 1600000000000000000 | Dec 6, 2022, 05:31:41 | 1670304701219 |
| 1800000000000000000 | Jun 10, 2024, 03:00:17 | 1717988417039 |
| 2006515713438646272 | Jan 1, 2026, 00:00:00 | 1767225600000 |
相关工具
常见问题
怎么知道一条推文是什么时候发的?
在上方粘贴帖子的链接或 ID。转换工具会读取 ID 里存的创建时间,按 UTC、你所在的时区和 Unix 时间显示,精确到毫秒。
转换工具会去抓取推文吗?
不会。日期是在你的浏览器里根据 ID 算出来的,不向 X 发送任何请求,所以已删除的帖子也能用,离线也能用。想看帖子本身,可以用推文查看器打开。
能查到已删除推文的日期吗?
能。时间是 ID 的一部分,所以无论帖子还在不在,任何帖子 ID 都能算出日期。
什么是推特 Snowflake ID?
它是 X 从 2010 年 11 月 4 日起给帖子使用的 64 位 ID 格式。前 41 位以毫秒存储创建时间,后面是机器 ID 和序列号。所以 ID 会随时间增大,也能解码成日期。
为什么很老的推文用不了?
2010 年 11 月 4 日之前的帖子用的是不含时间戳的顺序 ID,所以无法从 ID 算出日期。
由日期反推出来的 ID 是真实的推文吗?
不是。由日期生成的 ID 是一个边界,也就是那个时刻可能的最小 ID,用于在搜索中配合 since_id 和 max_id 使用。它几乎不可能对应一条真实的帖子。
日期有多准确?
精确到毫秒。它就是帖子发布时 X 写进 ID 里的创建时间。
能一次转换很多推文 ID 吗?
能。每行粘贴一个 ID 或链接,最多 100 个,然后把结果下载为 CSV。
能把用户 ID 转换成日期吗?
较新的 X 用户 ID 使用同样的 Snowflake 格式,所以转换工具可以算出日期。较老、较短的用户 ID 无法解码。要查任意账号的准确注册日期,请用账号注册时间查询。