8

次のような文字列の形式の日時文字列があります。

2011-10-23T08:00:00-07:00

この文字列を日時オブジェクトとして解析するにはどうすればよいですか。

私はドキュメントを読んで次のことをしました:

date = datetime.strptime(data[4],"%Y-%m-%d%Z")

しかし、私はエラーが発生します

  ValueError: time data '2011-10-23T08:00:00-07:00' does not match format '%Y-%m-%d%Z'

これは非常に明確です。

しかし、このフォーマットの読み方がわかりません。

助言がありますか。ありがとう

編集:また、私は追加する必要があります、私が気にするのは日付の部分だけです

4

1 に答える 1

30

標準のdatetime.datetime.strptimeには、タイムゾーンの定義に問題があります。dateutil.parserを使用する

>>> from dateutil import parser
>>> parser.parse("2011-10-23T08:00:00-07:00")
datetime.datetime(2011, 10, 23, 8, 0, tzinfo=tzoffset(None, -25200))

日付部分のみを気にする場合は、dateutil.parserなしで試すことができます。

>>> from datetime import datetime
>>> datetime.strptime(data[4].partition('T')[0], '%Y-%m-%d').date()
datetime.date(2011, 10, 23)
于 2012-06-11T18:11:37.933 に答える