如何给Twitter返回的ISO 8601格式时间增加1小时?
Twitter ISO时间加1小时解决方案
你遇到的格式不匹配报错,核心原因是Python的datetime标准库原生不直接识别该类时间末尾的Z(UTC时区标识)后缀。以下是两种可用实现方案:
方案1:适配Python 3.7及以上版本(推荐)
直接使用fromisoformat方法,仅需提前替换Z后缀即可:
from datetime import datetime, timedelta start_time = '2021-03-11T00:00:00.000Z' # 替换Z为标准UTC时区标识 utc_dt = datetime.fromisoformat(start_time.replace('Z', '+00:00')) # 增加1小时 new_utc_dt = utc_dt + timedelta(hours=1) # 转回Twitter原时间格式 new_start_time = new_utc_dt.isoformat().replace('+00:00', 'Z') print(new_start_time) # 输出结果:2021-03-11T01:00:00.000Z
方案2:适配Python 3.7以下版本
使用strptime指定格式串解析:
from datetime import datetime, timedelta start_time = '2021-03-11T00:00:00.000Z' # 按格式解析时间,%f对应微秒,后续截取前3位得到毫秒 dt = datetime.strptime(start_time, '%Y-%m-%dT%H:%M:%S.%fZ') # 加1小时后转回原格式 new_start_time = (dt + timedelta(hours=1)).strftime('%Y-%m-%dT%H:%M:%S.%f')[:-3] + 'Z' print(new_start_time) # 输出结果:2021-03-11T01:00:00.000Z
内容的提问来源于stack exchange,提问作者Tamara2607
相关产品推荐
相关产品推荐

