目前我正在编写一个小型python应用程序,我从网络服务器获取以下格式的日期(RFC3339):
2016-01-29T20:00:00+01:00
我必须将此日期解析为python datetime对象,为此我想使用datetime.strptime
方法,我必须指定日期的格式,但我不知道如何解析时区(+01:00)我尝试过:
datetime.strptime(strDate, "%Y-%m-%dT%H:%M:%S%z")
但这不起作用。你能告诉我我必须使用哪种格式字符串吗?
答案 0 :(得分:2)
您可以使用dateutil
,但是,如果您使用的是Python 3,则它仅适用于3.2或3.3。它还支持2.6和2.7上的Python 2。
我建议的解决方案:
from dateutil.parser import parse
string = "2016-01-29T20:00:00+01:00"
date = parse(string)
这会给你一个像这样的日期时间对象:
Out[1]: 2016-01-29 20:00:00+01:00
Out[2]: datetime.datetime(2016, 1, 29, 20, 0, tzinfo=tzoffset(None, 3600))
如果您想了解更多信息,请查看dateutil documentation。
此外,我认为strptime
直接在这里工作的原因是由于' T'在你的日期字符串上。它不是strptime
期望的格式。幸运的是,dateutil
解析方法可以直接为您修复该字符串。
答案 1 :(得分:1)
你能做到吗,
strDate = strDate.split('+')
datetime.strptime(strDate[0], "%Y-%m-%dT%H:%M:%S")
这对你有用