我怎么从Tweepy那里得到正确的日期和时间?

2024-10-17 06:27:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着分析政治微博。在

运行此代码时:

import tweepy
from tweepy import OAuthHandler
import datetime

consumer_key    = '...'
consumer_secret = '...'
access_token    = '...'
access_secret   = '...'

auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)

api = tweepy.API(auth)

username = "VP"
startDate = datetime.datetime(2017, 12, 1, 0, 0, 0)
endDate =   datetime.datetime(2017, 12, 2, 0, 0, 0)

tweets = []
tmpTweets = api.user_timeline(username)
for tweet in tmpTweets:
    if tweet.created_at < endDate and tweet.created_at > startDate:
        tweets.append(tweet)

while (tmpTweets[-1].created_at > startDate):
    print("Last Tweet @", tmpTweets[-1].created_at, "...fetching more")
    tmpTweets = api.user_timeline(username, max_id = tmpTweets[-1].id)
    for tweet in tmpTweets:
        if tweet.created_at < endDate and tweet.created_at > startDate:
            tweets.append(tweet)

for tweet in tweets:
    print(tweet.created_at)

我明白了:

^{pr2}$

但这是错误的。12月1日,副总裁发了3条微博。这些时间戳似乎提前了4小时。我该怎么解决东部时间的问题?在


Tags: importtokenauthapidatetimesecretaccessconsumer
1条回答
网友
1楼 · 发布于 2024-10-17 06:27:17

时区。

.created_at使用UTC(+0000),而您的startDate和{}是本地日期时间对象。在

一种方法是将created_at转换为本地,然后比较:

created_date_local = datetime_from_utc_to_local(tweet.created_at)
if endDate > created_date_local > startDate:
    # ...

其中^{} is defined as

^{pr2}$

这只是一种方法,不一定是最好的。在

根据需要只打印3条tweet:

^{3}$

相关问题 更多 >