web-dev-qa-db-ja.com

Pythonでrfc3339日付文字列を解析しますか?

すべての日付が次の形式のデータセットがあります。

2012-10-09T19:00:55Z

それらに対して.weekdayのようなメソッドを使用できるようにしたいと思います。 Pythonで適切な形式に変換するにはどうすればよいですか?

96
Spearfisher

dateutil.parser.parse を使用して、文字列をdatetimeオブジェクトに解析できます。

dateutil.parser.parseは、文字列の形式を推測しようとします。正確な形式が事前にわかっている場合は、 datetime.strptime を使用して、形式文字列を指定できます(Brent Washburneの回答を参照)。

from dateutil.parser import parse

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

b = parse(a)

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

これはすでにここで回答されています: ISO 8601日時文字列をPython日時オブジェクトに変換するにはどうすればよいですか?

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

moment をご覧ください。これは、優れたjs libのpythonポートです momentjs

その利点の1つは、 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
10
brunetton