Je reçois une réponse du reste est un format de temps Epoch comme
start_time = 1234566
end_time = 1234578
Je veux convertir cette époque en secondes au format MySQL afin de pouvoir stocker les différences dans ma base de données MySQL.
J'ai essayé:
>>> import time
>>> time.gmtime(123456)
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=2, tm_hour=10, tm_min=17, tm_sec=36, tm_wday=4, tm_yday=2, tm_isdst=0)
Le résultat ci-dessus n'est pas ce que j'attends. Je veux que ce soit comme
2012-09-12 21:00:00
Veuillez suggérer comment puis-je y parvenir?
Aussi, pourquoi je reçois TypeError: a float is required
pour
>>> getbbb_class.end_time = 1347516459425
>>> mend = time.gmtime(getbbb_class.end_time).tm_hour
Traceback (most recent call last):
...
TypeError: a float is required
1347516459425
? Ce n'est pas une époque valide. Essayeztime.gmtime(float(str(i)[:-6]+'.'+str(i)[-6:]))
oùi
est1347516459425
.Réponses:
Pour convertir votre valeur de temps (float ou int) en une chaîne formatée, utilisez:
la source
Vous pouvez également utiliser
datetime
:la source
strftime()
prend en charge plus d'espaces réservés de formatage, en particulier% f pour la partie microsecondes de l'heure. Pour des raisons inconnues,time.strftime()
ne prend pas en charge cela, bien que les microsecondes puissent être représentées dans la valeur flottante entrée danstime.localtime()
.Pour obtenir UTC:
la source
Voilà ce dont vous avez besoin
Veuillez saisir un
float
au lieu d'unint
et cet autreTypeError
devrait disparaître.la source
Essaye ça:
Toujours dans MySQL, vous pouvez
FROM_UNIXTIME
aimer:Pour votre 2ème question, c'est probablement parce que
getbbb_class.end_time
c'est une chaîne. Vous pouvez le convertir en numérique comme:float(getbbb_class.end_time)
la source
C'est un peu plus verbeux mais cela vient de la commande date sous unix.
la source
D'abord un peu d'informations à l'époque de man gmtime
pour comprendre comment l'époque devrait être.
assurez-vous simplement que l'argument vers lequel vous passez
time.gmtime()
est entier.la source