web-dev-qa-db-fra.com

Pourquoi est Python delta de temps datetime introuvable?

J'essaie de créer un tableau de dates au format mmddyyyy. Les dates commenceront le jour en cours et se prolongeront ensuite dans deux semaines. Tout dépend donc de la date de début. Lorsque j'exécute mon code, j'obtiens une erreur qui indique:

Traceback (most recent call last):
File "timeTest.py", line 8, in <module>
day = datetime.timedelta(days=i)
AttributeError: type object 'datetime.datetime' has no attribute 'timedelta'

Je ne sais pas pourquoi cela se produit car après avoir effectué une recherche en ligne, j'ai remarqué que les gens utilisent le "timedelta" de cette façon.

Voici mon code:

import time
from datetime import datetime, date, time, timedelta

dayDates = []
today = datetime.now()
dayDates.append(today.strftime("%m%d%Y"))
for i in range(0,14):
    day = today + datetime.timedelta(days=i)
    print day
11
questionier
import time
from datetime import datetime, date, time, timedelta

dayDates = []
today = datetime.now()
dayDates.append(today.strftime("%m%d%Y"))
for i in range(0,14):
    day = today + datetime.timedelta(days=i)
    print day

L'erreur que vous obtenez indique que datetime n'a pas d'attribut timedelta. Cela arrive, car vous avez importé de datetime des choses spécifiques. Pour accéder à timedelta maintenant vous tapez timedelta au lieu de datetime.timedelta.

import time
from datetime import datetime, date, time, timedelta

dayDates = []
today = datetime.now()
dayDates.append(today.strftime("%m%d%Y"))
for i in range(0,14):
    day = today + timedelta(days=i)
    print day

Comme ça, votre code devrait fonctionner correctement. Faites également plus attention aux messages d'erreur et essayez de les lire attentivement. Si vous vous concentrez suffisamment, vous pouvez souvent régler le problème en vous basant sur eux-mêmes.

22
fulaphex

Vous avez déjà importé timedelta. Vous n'avez pas besoin d'y accéder via datetime.

import time
from datetime import datetime, date, time, timedelta

dayDates = []
today = datetime.now()
dayDates.append(today.strftime("%m%d%Y"))
for i in range(0,14):
    day = today + timedelta(days=i)
    print day
3
Falmarri

La méthode que vous souhaitez appeler est datetime.timedelta, comme vu ici . datetime est le module contenant timedelta.

Si vous regardez votre ligne import:

from datetime import datetime, date, time, timedelta

... vous verrez que vous importez la datetime class depuis la datetime module. Ainsi, lorsque vous appelez datetime.timedelta, vous appelez en fait datetime.datetime.timedelta, qui n'existe pas.

1
touch my body