twitter4j 和 twitter 时间戳处理

twitter4j and twitter timestamp handling

根据官方推特api页面https://dev.twitter.com/overview/api/tweets)每条推文的"created_at"时间戳是根据"UTC time when this Tweet was created.".

编译的

哪个UTC?

因为在推文结构内的用户结构下,我找到了创建推文的用户的 "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 变量。这意味着控制台上显示的时间取决于您的配置和系统。