Python 日期时间解析时区 (RFC3339)
Python datetime parse timezone (RFC3339)
目前我正在编写一个小型 python 应用程序,我从网络服务器获取以下格式 (RFC3339) 的日期:
2016-01-29T20:00:00+01:00
我必须将这个日期解析为 python 日期时间对象,为此我想使用 datetime.strptime
方法,我必须在其中指定日期的格式,但我没有知道如何解析时区 (+01:00) 我试过:
datetime.strptime(strDate, "%Y-%m-%dT%H:%M:%S%z")
但这不起作用。你能告诉我必须使用哪种格式字符串吗?
你能做到吗,
strDate = strDate.split('+')
datetime.strptime(strDate[0], "%Y-%m-%dT%H:%M:%S")
这对你有用
您可以使用 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
解析方法开箱即用,可以为您修复该字符串。
目前我正在编写一个小型 python 应用程序,我从网络服务器获取以下格式 (RFC3339) 的日期:
2016-01-29T20:00:00+01:00
我必须将这个日期解析为 python 日期时间对象,为此我想使用 datetime.strptime
方法,我必须在其中指定日期的格式,但我没有知道如何解析时区 (+01:00) 我试过:
datetime.strptime(strDate, "%Y-%m-%dT%H:%M:%S%z")
但这不起作用。你能告诉我必须使用哪种格式字符串吗?
你能做到吗,
strDate = strDate.split('+')
datetime.strptime(strDate[0], "%Y-%m-%dT%H:%M:%S")
这对你有用
您可以使用 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
解析方法开箱即用,可以为您修复该字符串。