如何让Python的datetime.strptime考虑传递的时区?

5
尝试将字符串转换为datetime并保存到数据库中。该字符串指定时区,但是strptime不接受%z选项。
datetime.strptime("Tue Feb 14 2017 15:30:01 GMT-0500", "%a %b %d %Y %H:%M:%S GMT%z")

ValueError: 在格式化字符串 '%a %b %d %Y %H:%M:%S GMT%z' 中,'z' 是一个错误的指令。

答案似乎在这里:https://dev59.com/6V8e5IYBdhLWcg3wCGu_ - Marviel
1个回答

5

%z 自 Python 3.2 版本开始支持。

>>> from datetime import datetime
>>> datetime.strptime("Tue Feb 14 2017 15:30:01 GMT-0500", "%a %b %d %Y %H:%M:%S GMT%z")
datetime.datetime(2017, 2, 14, 15, 30, 1, tzinfo=datetime.timezone(datetime.timedelta(-1, 68400)))

或者使用dateutil.parser

>>> from dateutil import parser
>>> parser.parse('Tue Feb 14 2017 15:30:01 GMT-0500')
datetime.datetime(2017, 2, 14, 15, 30, 1, tzinfo=tzoffset(None, 18000))


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接