Comment faites-vous l'inverse gmtime()
, où vous mettez l'heure + la date et obtenez le nombre de secondes?
J'ai des cordes comme 'Jul 9, 2009 @ 20:02:58 UTC'
, et je veux récupérer le nombre de secondes entre l'époque et le 9 juillet 2009.
J'ai essayé time.strftime
mais je ne sais pas comment l'utiliser correctement, ou si c'est la bonne commande à utiliser.
Utilisez le module de temps :
la source
time
utilise l'époque Unix (1970).time.time()
valeur ne dépend PAS du fuseau horaire local (si nous excluons les fuseaux horaires "bons" et autres) par exemple, si elle renvoie l'heure POSIX (comme sur la plupart des systèmes) alors c'est le nombre de secondes SI depuis l'époque (1970-01-01UTC) sans compter les secondes intercalaires. Cette valeur peut être convertie en UTC (à l'exclusion des secondes intercalaires) mais ce n'est pas UTC . @MarlonAbeykoon: J'aime cette réponseNotez que l'
time.gmtime
horodatage correspond0
à1970-1-1 00:00:00
.time.mktime(time.gmtime(0))
vous donne un horodatage décalé d'un montant qui dépend de votre langue, qui en général peut ne pas être 0.L'inverse de
time.gmtime
estcalendar.timegm
:la source
mktime()
avecgmtime()
.mktime()
accepte votre heure locale maisgmtime()
renvoie l' heure UTC - votre fuseau horaire local peut et est susceptible d'être différent. "horodatage relatif à votre locale" n'a pas de sens: l'horodatage POSIX ne dépend pas de votre locale (fuseau horaire local) - c'est la même valeur partout dans le monde. «secondes depuis l'époque» est l'horodatage POSIX dans la plupart des cas (même sous Windows) - des choses comme les fuseaux horaires «corrects» qui utilisent l'échelle de temps TAI ne sont pas courantes. Voir Le time.time () de Python renvoie-tmktime()
récemment. Pour certains serveurs Web python (Tornado par exemple), puisque le processus continue de s'exécuter, même si je change les paramètres régionaux du système, l'mktime()
API du serveur Web appelée par l'API du serveur Web utilise toujours l' ancien fuseau horaire pour générer l'objet de temps. Je dois basculergmtime()
et appliquer manuellement le décalage gmt.Cela devrait être différent de
int(time.time())
, mais il est sûr d'utiliser quelque chose commex % (60*60*24)
datetime - Types de date et d'heure de base:
la source
la source
from datetime import datetime
ou fairedatetime.datetime.strptime
Il existe deux façons, en fonction de votre horodatage d'origine:
mktime()
ettimegm()
http://docs.python.org/library/time.html
la source