J'interroge une base de données pour obtenir un datetime, puis j'essaie de la convertir en un timestamp unix. Voici mon code:erreur d'attribut lors de la tentative de conversion de datetime en timestamp unix en python 2.7
#! /bin/python
import time, pytz
from datetime import datetime
eastern = pytz.timezone("US/Eastern")
def toUnix(dt):
#converts a datetime to a unix timestamp
return time.mktime(dt.timetuple())
def getFillStartTime(fillNo):
#returns the start time of a fill as a unix time stamp
dsacursor.execute('select startTime from fillInfo where fillNo = @fillNo',{'@fillNo':fillNo})
sel = dsacursor.fetchall()
dt = sel[0][0]
dt = dt.replace(tzinfo = eastern)
return toUnix(dt)
print getFillStartTime(20318)
Quand je le lance, je suis en train de AttributeError: replace
ici est le retraçage:
Traceback (most recent call last):
File "test.py", line 27, in <module>
print getFillStartTime(20318)
File "importToLogView.py", line 25, in getFillStartTime
dt = dt.replace(tzinfo = eastern)
AttributeError: replace
J'ai testé certaines choses et dt
de type DateTimeType
quand il est passé à la fonction toUnix()
. Aussi, quand je remplace dt.timetuple()
avec datetime.now().timetuple()
il imprime le résultat attendu. J'ai également essayé de ne pas remplacer le tzinfo et il donne AttributeError: timetuple
à la place. Si c'est un datetime, pourquoi cette erreur se produit-elle?
double possible de [Conversion en Python timestamp unix] (https://stackoverflow.com/questions/42491129/converting-to-unix-timestamp-python) –
Quelle est la sortie si vous mettre 'type d'impression (dt)' après 'dt = sel [0] [0]'? –
'' –