web-dev-qa-db-ja.com

この単純な例でdatetime.strptimeが機能しないのはなぜですか?

strptime を使用して、日付文字列をdatetimeに変換しています。リンクされたページによると、このようなフォーマットは機能するはずです。

>>> # Using datetime.strptime()
>>> dt = datetime.strptime("21/11/06 16:30", "%d/%m/%y %H:%M")

私のコードは:

import datetime
dtDate = datetime.strptime(sDate,"%m/%d/%Y")

ここで、sDate = "07/27/2012"。 (同じページから、%Y "年を10進数として世紀とする。"

私はsDateの実際の値をコードに入れようとしました:

dtDate = datetime.strptime("07/27/2012","%m/%d/%Y")

しかし、これは機能しません。私が得るエラーは:

AttributeError:「モジュール」オブジェクトには属性「strptime」がありません

私は何を間違えていますか?

54
Wikis

datetime.datetime.strptimeを使用する必要があります。 Pythonの非常に古いバージョン(2.4以前)にはdatetime.datetime.strptimeがないことに注意してください。その場合は time.strptime を使用します。

63
ecatmur

strptime関数を持たないモジュールdatetimeをインポートしています。

そのモジュールdoesはそのメソッドでdatetimeオブジェクトを持っています:

import datetime
dtDate = datetime.datetime.strptime(sDate, "%m/%d/%Y")

または、モジュールからdatetimeオブジェクトをインポートできます。

from datetime import datetime
dtDate = datetime.strptime(sDate, "%m/%d/%Y")

python 2.5でstrptimeメソッドが追加されたことに注意してください。古いバージョンを使用している場合は、代わりに次のコードを使用します。

import datetime, time
dtDate = datetime.datetime(*time.strptime(sDate, "%m/%d/%Y")[:6])
22
Martijn Pieters

datetimeはモジュールであるためです。クラスはdatetime.datetimeです。

import datetime
dtDate = datetime.datetime.strptime(sDate,"%m/%d/%Y")

strftimeモジュールのdatetimeクラスのdatetime静的メソッドを使用する必要があります。試してください:

import datetime
dtDate = datetime.datetime.strptime("07/27/2012", "%m/%d/%Y")
1
Konrad Hałas

プロジェクトのフォルダーに「datetime.py」という名前のファイルを作成した場合

0
Ihor Ivasiuk

また、以下を実行して、日時をインポートすることもできます

from datetime import datetime as dt

dt.strptime(date, '%Y-%m-%d')
0