Python如何转换Twitter返回的'Wed Oct 20 16:42:04 +0000 2021'格式日期为独立日期时间列
问题解决方法
该需求完全可以实现,你遇到的报错是因为混淆了datetime库两个核心方法的用法:
strptime是字符串转datetime对象的方法,第二个参数需要匹配输入的原始时间字符串的格式,而非你想要的输出格式;你需要的输出格式要在datetime对象转字符串的strftime方法中传入。
完整实现代码
1. 前置依赖与环境适配
如果你的运行环境是中文locale,需要先临时设置时间解析规则为英文,避免无法识别英文的星期、月份缩写:
from datetime import datetime import locale # 适配英文时间格式解析 locale.setlocale(locale.LC_TIME, 'en_US.UTF-8')
2. 替换原转换代码
# 第一步:把Twitter返回的原始时间字符串转为datetime对象,使用匹配输入格式的规则 created_at_dt = datetime.strptime(tweet['created_at'], '%a %b %d %H:%M:%S %z %Y') # 第二步:分别格式化为你需要的日期、时间两个独立字段 filtered_data['date'] = created_at_dt.strftime('%d-%m-%Y') filtered_data['time'] = created_at_dt.strftime('%H:%M:%S')
用到的格式符说明
%a:匹配星期缩写,对应输入中的Wed%b:匹配月份缩写,对应输入中的Oct%d:匹配两位日期,对应输入中的20%H:%M:%S:匹配时分秒,对应输入中的16:42:04%z:匹配UTC时区偏移,对应输入中的+0000%Y:匹配四位年份,对应输入中的2021
内容的提问来源于stack exchange,提问作者kostya ivanov
相关产品推荐
相关产品推荐

