web-dev-qa-db-fra.com

TypeError: doit être une chaîne et non datetime.datetime lors de l'utilisation de strptime

J'essaie d'écrire une fonction en Python 2.7 qui convertit une série de nombres en une date valide. Jusqu'à présent, tout fonctionne séparément de la conversion.

Voici le code pertinent:

import datetime

def convert_date(x,y,z):
    orig_date = datetime.datetime(x,y,z)
    d = datetime.datetime.strptime(str(orig_date), '%Y-%m-%d %H:%M:%S')
    result = d.strftime('%m-%d-%Y')
    return orig_date

a = convert_date(13,11,12)
print a

Chaque fois que je lance ceci, je reçois:

> Traceback (most recent call last):
>       File "test.py", line 9, in <module>
>         a = convert_date(13,11,12)
>       File "test.py", line 5, in convert_date
>         d = datetime.datetime.strptime(orig_date, '%Y-%m-%d %H:%M:%S')

> TypeError: must be string, not datetime.datetime

Je sais que c'est parce que strptime me donne datetime object, mais comment faire en sorte que cela fonctionne?

12
Fake Name

Vous obtenez une exception. Dans le bloc except, vous faites simplement un pass. Au lieu de cela, si vous faites un print ou enregistrez l'exception, vous saurez ce qui ne va pas.

Étant donné que vous obtenez une exception, l'objet result n'est pas créé et vous obtenez donc l'erreur.

0