有没有办法根据推文 ID 判断一条推文是否是一个又一个创建的?

pir*_*ray 0 twitter twitter4j

目前,我正在根据时间戳检查一条推文是否是在另一条推文之后创建的,但这被证明是不一致的。在本地工作的内容在我的服务器上并不总是工作。我怀疑时区问题(我的服务器位于另一个时区)。

但我想知道我是否可以根据 Twitter 每条推文的唯一 ID 来做到这一点?形式上的东西:

if (tweet2.id > tweet1.id) {
    // tweet2 created after tweet 1
} else {
    // tweet2 created before tweet 1
}
Run Code Online (Sandbox Code Playgroud)

这可能吗?如果没有,我会问另一个问题,关于我的日期实现可能出了什么问题。

nic*_*lon 6

  • Twitter id 是由Twitter 雪花机制生成的,该机制是一种算法和一组生成它的机器。一般来说,这些 id 是连续的,因此您的比较基本上是成立的。问题是这些 id 当前> 64 位,因此 js 会截断它们。技巧是使用 tweetXXX.id_str 字段,该字段是将 id 转换为字符串以进行比较。
  • 我还没有看到你的日期实现,但可能你没有比较 UTC 日期值。对日期时间进行的任何比较都不会给出正确的结果,即使在毫秒范围内,同一日期时间也会有很多推文。