首页 > 解决方案 > 如何从 tweet.create_at 获取标准日期时间

问题描述

我正在我的项目中实现 tweepy api,并且我试图获取使用 tweet.created_at 创建推文的时间。它返回一组数字,而不是官方 twitter API 文档中显示的实际日期字符串。下面是获取数据的代码:

 for tweet in tweepy.Cursor(tweet_api.search, q=user, count=200,
                           lang="en").items(4000):

    if re.match(pattern, tweet.text):
        continue
    tweet_d.append(tweet)

data["text"] = [clean_tweet(tweet.text) for tweet in tweet_d]
data["len"] = [len(clean_tweet(tweet.text)) for tweet in tweet_d]
data["Date"] = [tweet.created_at for tweet in tweet_d]
data['Source'] = [tweet.source for tweet in tweet_d]
data['Likes'] = [tweet.favorite_count for tweet in tweet_d]
data['RTs'] = [tweet.retweet_count for tweet in tweet_d]

这是打印出来的 Array 对象:

[ {"text":"b see as you fresh like todays boli", "len":35, "Date":1588602936000, "Source":"Twitter for Android", "Likes":0, "RTs":0 }, {"text":"b", "len":1, "Date":1588598786000, "Source":"Android 版 Twitter", "赞":1, "RTs":0}, {"text" :"b", "len":1, "日期":1588597919000, "来源":"Android 版 Twitter", "赞":1, "RTs":0},]

我试图将日期作为标准日期时间(“Wed May 23 06:01:13 +0000 2007”,)而不是显示的那些数字集(1588598786000)。

标签: pythonflasktwittertweepypython-datetime

解决方案


该数字是以毫秒为单位的 UNIX 时间戳。

除以 1000 得到秒,然后传递给datetime.datetime.fromtimestamp()

>>> import datetime
>>> t = datetime.datetime.fromtimestamp(1588602936000 / 1000)
datetime.datetime(2020, 5, 4, 17, 35, 36)
>>> t.isoformat()
'2020-05-04T17:35:36'

推荐阅读