将时间戳从格式“YYYY-MM-DDTHH:MM:SS-hh:mm”转换为日期时间对象由于时间偏移,在 Python 中使用 strptime 方法可能具有挑战性
在提供的示例中,strptime 无法使用“%Y-%m-%dT%H:%M:%S-%z”解析偏移量为“-07:00”的时间戳“ 格式。这是因为 strptime 本身不支持 Python 2 中时区的“%z”指令。
解决方法选项:
1。忽略时区:
如果时区信息不重要,您可以通过将字符串解析到偏移量来忽略它:
time_str = "2012-07-24T23:14:29-07:00" time_obj = datetime.datetime.strptime(time_str[:19], '%Y-%m-%dT%H:%M:%S')
2。使用 dateutil 模块:
或者,dateutil 模块提供更强大的解析功能,支持时区:
from dateutil.parser import parse time_obj = parse(time_str)
Python 3 支持:
在 Python 3.2 及更高版本中,改进了对时区处理的支持。从偏移量中删除最后一个“:”并将“-”替换为“”:
time_str = "2012-07-24T23:14:29-07:00" time_obj = datetime.datetime.strptime(''.join(time_str.rsplit(':', 1)), '%Y-%m-%dT%H:%M:%S%z')
这将正确解析时间戳并创建具有指定时区偏移量的日期时间对象。
以上是如何将带有时区偏移的时间戳转换为 Python 日期时间对象?的详细内容。更多信息请关注PHP中文网其他相关文章!