java - twitter4j 和 twitter 时间戳处理

标签 java twitter twitter4j

根据官方twitter api页面https://dev.twitter.com/overview/api/tweets ) 每条推文的“created_at”时间戳是根据“创建此推文的 UTC 时间”编译的。

哪个世界标准时间?

因为在推文结构内的 User 结构下,我找到了创建推文的用户的“utc_offset”( https://dev.twitter.com/overview/api/users )。

所以我的问题是,我是否可以考虑将每条推文的“created_at”字段独立于所使用的 API,视为没有偏移量的 UTC。

只是为了确定 twitter4j 是否会改变这种行为,因为如果我在意大利运行一个简单的流测试,UTC-1 在哪里

String now = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime());
    System.out.println("test run at: " + now); 
StatusListener listener = new StatusListener(){
        @Override
        public void onException(Exception ex) {
            ex.printStackTrace();
        }

        @Override
        public void onStatus(Status status) {
            System.out.println("@" + status.getId() + " - " + status.getCreatedAt().toString());
        }

        @Override
        public void onDeletionNotice(StatusDeletionNotice sdn) {
        }

        @Override
        public void onScrubGeo(long l, long l1) {
        }

        @Override
        public void onStallWarning(StallWarning sw) {
        }

        @Override
        public void onTrackLimitationNotice(int i) {
        }
    };

    ConfigurationBuilder cb = new ConfigurationBuilder();
    cb.setDebugEnabled(true)
        .setOAuthConsumerKey ...


    TwitterStream twitterStream = new TwitterStreamFactory(cb.build()).getInstance();
    twitterStream.addListener(listener);
    twitterStream.sample();

结果我得到了这样的结果:

run:
test run at: 20160921_084244
[Wed Sep 21 08:42:44 CEST 2016]Establishing connection.
[Wed Sep 21 08:42:46 CEST 2016]Connection established.
[Wed Sep 21 08:42:46 CEST 2016]Receiving status stream.
@778484603443113985 - Wed Sep 21 08:42:47 CEST 2016
@778484603443085312 - Wed Sep 21 08:42:47 CEST 2016
@778484603434795008 - Wed Sep 21 08:42:47 CEST 2016
@778484603443154945 - Wed Sep 21 08:42:47 CEST 2016
@778484603438923776 - Wed Sep 21 08:42:47 CEST 2016
@778484603434721280 - Wed Sep 21 08:42:47 CEST 2016

很容易注意到推文没有以标准 UTC 显示,似乎 twitter4j 会自动根据本地时区调整它们。

有人可以帮助我更好地理解吗?

最佳答案

来自documentation结果格式如下

"created_at":"Wed Aug 27 13:08:45 +0000 2008"

+0000 是偏移量,Twitter4j 仅接受此输入并创建一个 Date Java 变量。这意味着控制台上显示的时间取决于您的配置和系统。

关于java - twitter4j 和 twitter 时间戳处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39609872/

相关文章:

java - 带有 Struts Filter 和 Tomcat 的 Spring Boot

ios - Swift - 将视频上传到 Twitter 时请求状态为 400

java - Twitter4j getFollowersIDs 光标问题

java - SavedInstanceState 为空

java - @SafeVarargs 是否适合此方法的注释?

java - 二维数组过程?

Android Twitter 集成 - 卡在登录页面?

cocoa - 剖析 Mac 版 Twitter : how this amazing UI is done

android - twitter4j:根据 twitter 回调 url 获取访问 token

java - twitter4j 搜索完整 7 天范围