推特的ID是否按时间顺序排列?

10
我的问题是Twitter的每个推文的id是否按时间顺序排列,即更近期的推文id是否为更大的数字。
例如:这条推文的id为623261510727561216,发布于2015年7月21日凌晨12:41
另一条推文的id为623260219477524481,发布于2015年7月21日凌晨12:36。ID的差值623261510727561216-623260219477524481=1291250036735,是一个正的时间差。
我只想确定一个顺序,哪个推文是先发布的。
2个回答

11

推特ID是按时间排序的。根据推特文档,完整的ID由时间戳、工作器编号和序列号组成。所以基本上ID的第一部分是时间戳,因此可以按时间排序。(但我不确定Twitter使用了多少位来表示时间戳)。


0

从推特ID中提取时间戳

推特ID在一秒内是按k排序的。我们可以通过将推特ID向右移动22位并加上Twitter纪元时间1288834974657来提取推特ID的时间戳。

获取推特ID的UTC时间戳的Python代码

def get_tweet_timestamp(tid):
    offset = 1288834974657
    tstamp = (tid >> 22) + offset
    utcdttime = datetime.utcfromtimestamp(tstamp/1000)
    print(str(tid) + " : " + str(tstamp) + " => " + str(utcdttime))

源代码


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接