web-dev-qa-db-fra.com

Comment obtenir les secondes depuis Epoch à partir de la sortie time + date de gmtime ()?

Comment faites-vous l'inverse gmtime(), où vous mettez l'heure + la date et obtenez le nombre de secondes?

J'ai des chaînes 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 ni si c'est la commande correcte à utiliser.

144
calccrypto

Vous voulez calendar.timegm().

>>> calendar.timegm(time.gmtime())
1293581619.0

Vous pouvez transformer votre chaîne en un tuple de temps avec time.strptime(), qui renvoie un tuple de temps que vous pouvez transmettre à calendar.timegm():

>>> import calendar
>>> import time
>>> calendar.timegm(time.strptime('Jul 9, 2009 @ 20:02:58 UTC', '%b %d, %Y @ %H:%M:%S UTC'))
1247169778

Plus d'informations sur le module d'agenda ici

114
nmichaels

Utilisez le module time :

Epoch_time = int(time.time())
549
naren

Notez que time.gmtime mappe l'horodatage 0 sur 1970-1-1 00:00:00.

In [61]: import time       
In [63]: time.gmtime(0)
Out[63]: time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)

time.mktime(time.gmtime(0)) vous donne un horodatage décalé d'une valeur qui dépend de votre environnement local, qui peut ne pas être généralement égal à 0.

In [64]: time.mktime(time.gmtime(0))
Out[64]: 18000.0

L'inverse de time.gmtime est calendar.timegm:

In [62]: import calendar    
In [65]: calendar.timegm(time.gmtime(0))
Out[65]: 0
10
unutbu
ep = datetime.datetime(1970,1,1,0,0,0)
x = (datetime.datetime.utcnow()- ep).total_seconds()

Cela devrait être différent de int(time.time()), mais vous pouvez utiliser quelque chose comme x % (60*60*24).

date/heure - Types de base de date et heure:

Contrairement au module time, le module datetime ne prend pas en charge les secondes intercalaires.

5
user3226167
t = datetime.strptime('Jul 9, 2009 @ 20:02:58 UTC',"%b %d, %Y @ %H:%M:%S %Z")
4
Falmarri

Il existe deux manières, selon votre horodatage d'origine:

mktime() et timegm()

http://docs.python.org/library/time.html

3
Evan Mulawski