Согласно официальной странице twitter api https://dev.twitter.com/overview/api/tweets) отметка времени «created_at» каждого твита компилируется в соответствии с «UTC, когда этот твит был создан».twitter4j и twitter timestamp обработка
Какой UTC?
Потому что под структурой пользователя внутри структуры tweet я нашел «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 автоматически настраивает их с местным часовым поясом.
Может кто-нибудь помочь мне в лучшем понимании.
Итак, все, что я получил от twitter4j, уже сообщается в мой часовой пояс или utc-0? – LuigiDB
Возможно, в вашем часовом поясе, но это зависит от вашей конфигурации. В моем случае мой часовой пояс (-3 UTC). Вы можете выполнить поиск по ключевому слову и проверить его с помощью недавнего твита. – FeanDoe
Я запустил несколько тестовых поисковых jap как язык с потоком api, а api поиска и timestamps в обоих случаях преобразуются в мою локальную метку времени. Теперь благодаря вам это поведение ясное. Таким образом, поиск твита намного проще, если библиотека выполняет все преобразования часового пояса. большое спасибо – LuigiDB