it-swarm.com.de

Warum funktioniert datetime.strptime in diesem einfachen Beispiel nicht?

Ich verwende strptime , um eine Datumszeichenfolge in eine datetime zu konvertieren. Entsprechend der verlinkten Seite sollte eine solche Formatierung funktionieren:

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

Mein Code lautet:

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

wo sDate = "07/27/2012" (zum Beispiel). (Ich verstehe auf derselben Seite, dass %Y"Jahr mit Jahrhundert als Dezimalzahl ist.")

Ich habe versucht, den tatsächlichen Wert von sDate in den Code einzufügen:

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

aber das geht nicht. Der Fehler, den ich erhalte, ist: AttributeError: 'Modul'-Objekt hat kein Attribut' Strptime '

Was mache ich falsch?

51
Wikis

Sie sollten datetime.datetime.strptime verwenden. Beachten Sie, dass sehr alte Versionen von Python (2.4 und älter) nicht datetime.datetime.strptime haben. Verwenden Sie in diesem Fall time.strptime .

59
ecatmur

Sie importieren das Modul datetime, das keine strptime-Funktion hat.

Dieses Modul hat hat jedoch ein datetime-Objekt mit dieser Methode:

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

Alternativ können Sie das datetime-Objekt aus dem Modul importieren:

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

Beachten Sie, dass die strptime-Methode in Python 2.5 hinzugefügt wurde. Wenn Sie eine ältere Version verwenden, verwenden Sie stattdessen den folgenden Code:

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

Weil datetime das Modul ist. Die Klasse ist datetime.datetime.

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

Wenn Sie im Ordner mit Ihrem Projekt eine Datei mit dem Namen "datetime.py" erstellt haben

0
Ihor Ivasiuk

Sie können auch folgendes tun, um datetime zu importieren

from datetime import datetime as dt

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

Sie sollten die statische Methode strftime aus der Klasse datetime aus dem Modul datetime verwenden. Versuchen:

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