在Python中解析rfc3339日期字符串?

时间:2014-04-24 18:46:08

标签: python date datetime-parsing rfc3339

我有一个数据集,其中所有日期都具有以下格式:

2012-10-09T19:00:55Z

我希望能够在其上使用.weekday等方法。如何在Python中将它们转换为正确的格式?

3 个答案:

答案 0 :(得分:164)

您可以使用dateutil.parser.parse将字符串解析为日期时间对象。

dateutil.parser.parse将尝试猜测字符串的格式,如果您事先知道确切的格式,那么您可以使用提供格式字符串的datetime.strptime(请参阅Brent Washburne的答案)。< / p>

from dateutil.parser import parse

a = "2012-10-09T19:00:55Z"

b = parse(a)

print(b.weekday())
# 1 (equal to a Tuesday)

答案 1 :(得分:87)

这已在此处得到解答:How do I translate a ISO 8601 datetime string into a Python datetime object?

d = datetime.datetime.strptime( "2012-10-09T19:00:55Z", "%Y-%m-%dT%H:%M:%SZ" )
d.weekday()

答案 2 :(得分:10)

你应该看看moment这是优秀的js lib momentjs的python端口。

它的一个优点是支持ISO 8601字符串格式,以及通用的“%格式”:

import moment
time_string='2012-10-09T19:00:55Z'

m = moment.date(time_string, '%Y-%m-%dT%H:%M:%SZ')
print m.format('YYYY-M-D H:M')
print m.weekday

结果:

2012-10-09 19:10
2