如何在Python中将字符串列表中的ISO 8601日期时间转为UTC日期时间
如何在Python中将字符串列表中的ISO 8601日期时间转换为UTC日期时间?
解决方案
可以通过Python的datetime模块(或python-dateutil库兼容旧版本)完成转换,步骤分为解析ISO字符串、转UTC时区、格式化输出三个环节:
方法1:使用Python 3.7+内置datetime.fromisoformat
from datetime import datetime # 输入的ISO 8601日期字符串列表 iso_date_list = ["2023-10-05T14:48:00-05:00", "2023-10-06T09:15:00+02:00"] def iso_to_utc(date_str): # 解析带时区的ISO字符串为datetime对象 dt_with_tz = datetime.fromisoformat(date_str) # 转换为UTC时区 utc_dt = dt_with_tz.astimezone(datetime.timezone.utc) # 格式化为你需要的"YYYY-MM-DD HH:MM:SS"格式 return utc_dt.strftime("%Y-%m-%d %H:%M:%S") # 批量处理列表 utc_date_list = [iso_to_utc(date) for date in iso_date_list] print(utc_date_list)
方法2:兼容Python 3.6及以下版本(使用python-dateutil)
如果你的Python版本低于3.7,需要先安装python-dateutil库:
pip install python-dateutil
再使用以下代码:
from dateutil.parser import isoparse from datetime import datetime iso_date_list = ["2023-10-05T14:48:00-05:00", "2023-10-06T09:15:00+02:00"] def iso_to_utc(date_str): dt_with_tz = isoparse(date_str) utc_dt = dt_with_tz.astimezone(datetime.timezone.utc) return utc_dt.strftime("%Y-%m-%d %H:%M:%S") utc_date_list = [iso_to_utc(date) for date in iso_date_list] print(utc_date_list)
代码说明
- 解析ISO字符串:
fromisoformat(或isoparse)能直接识别带时区偏移的ISO 8601格式字符串,生成带时区信息的datetime对象。 - 转换为UTC:
astimezone(datetime.timezone.utc)会将原时区的时间转换为UTC时间。 - 格式化输出:
strftime("%Y-%m-%d %H:%M:%S")将UTC时间对象转换为你需要的字符串格式。
内容的提问来源于stack exchange,提问作者Mr.Bean
相关产品推荐
相关产品推荐

