Twitter API获取的转发推文时间戳所属时区如何确定?
如何确定Tweepy获取的转发推文created_at的时区?
嘿,作为第一次接触Twitter API和Tweepy的新手,你碰到的这个时区问题其实挺普遍的,我来给你捋清楚:
- Tweepy返回的
created_at字段本质上是UTC时区(协调世界时,零时区)的时间,这是Twitter API的默认规则——所有推文的时间戳都会以UTC为基准返回。 - 你看到的
datetime.datetime(2018, 5, 28, 15, 44, 56)是一个不带时区信息的datetime对象,我们可以手动给它加上时区标识,再转换为你需要的本地时区或者指定时区。
给你调整后的代码示例,这样就能明确时区并完成转换:
from datetime import timezone import pytz # 先通过pip install pytz安装这个库 auth = OAuthHandler(consumer_key, consumer_secret) auth.set_access_token(access_token, access_token_secret) auth_api = API(auth) tweetid = # 替换成你的原推文ID retweet = auth_api.retweets(tweetid)[0] # 给返回的时间加上UTC时区标识 utc_time = retweet.created_at.replace(tzinfo=timezone.utc) # 转换为你需要的时区,比如北京时间(东八区) target_tz = pytz.timezone('Asia/Shanghai') local_time = utc_time.astimezone(target_tz) print(local_time)
还有个快速验证的小技巧:如果只是想确认原始的UTC时间,你可以把它转成ISO格式并加上Z标识(Z代表UTC):
print(retweet.created_at.isoformat() + 'Z') # 输出示例:2018-05-28T15:44:56Z
内容的提问来源于stack exchange,提问作者zwlayer
相关产品推荐
相关产品推荐

