@DanJ: es el número de segundos transcurridos desde Epoch (un momento fijo en el tiempo) y es el mismo en cualquier zona horaria. Aunque si ignoramos las instancias de tiempo alrededor de los segundos bisiestos; es fácil convertirlo a UTC si time utiliza la época de Unix (1970).
– jfs
17 de noviembre de 2013 a las 17:04
Tenga en cuenta que esto no es lo que estaba pidiendo el OP, pero es lo que yo querido. Entonces +1.
– sin miedo_tonto
21 de septiembre de 2014 a las 6:50
es la respuesta a lo que se pregunta en el título: “obteniendo el tiempo desde la época”. +1
– Alejandro VD
3 de noviembre de 2015 a las 17:16
@JFSebastian esto da época a segundos. ¿Cómo puedo obtener la resolución hasta milisegundos usando la misma respuesta anterior?
– Marlon Abeykoon
22 de agosto de 2016 a las 9:37
para ampliar mi comentario anterior: time.time() El valor NO depende de la zona horaria local (si excluimos las zonas horarias “correctas” y similares), por ejemplo, si devuelve la hora POSIX (como lo hace en la mayoría de los sistemas), entonces es la cantidad de segundos SI desde la Época (1970-01 -01UTC) sin contar los segundos bisiestos. Este valor pueden ser convertido a UTC (excluyendo los segundos bisiestos) pero no es UTC. @MarlonAbeykoon: Me gusta esta respuesta
– jfs
22 de agosto de 2016 a las 10:36
nmichaels
Si llegaste aquí porque un motor de búsqueda te dijo que así es como obtener la marca de tiempo de Unix, deja de leer esta respuesta. Desplácese hacia arriba uno.
Si quieres invertir time.gmtime()usted quiere calendar.timegm().
>>> calendar.timegm(time.gmtime())
1293581619.0
Puedes convertir tu cadena en una tupla de tiempo con time.strptime()que devuelve una tupla de tiempo que puede pasar a calendar.timegm():
Más información sobre el módulo de calendario aquí
Si está buscando la época actual de Unix, consulte el comentario de @DanJ o la respuesta de naren, ¡esta respuesta es incorrecta!
– mutantaculo
22 de marzo de 2013 a las 10:52
Respuestas como esta me hacen reír. No estoy exactamente seguro de por qué. Me siento como una pelota de baloncesto.
–Nathan Chappell
20 oct 2020 a las 12:25
@NathanChappell La optimización del motor de búsqueda es extraña, y “cómo obtener segundos desde la época” es la única parte de la pregunta que mucha gente lee. Vea el comentario anterior que sugiere que esta respuesta es incorrecta, ya que responde a la pregunta que realmente se hizo.
– nmichaels
22 oct 2020 a las 15:31
Si vino aquí simplemente buscando cómo obtener el tiempo de época en python, la respuesta es -> time.time()
– MohitC
26 de diciembre de 2021 a las 13:28
unutbu
Tenga en cuenta que time.gmtime marca de tiempo de los mapas 0 a 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)) le da una marca de tiempo desplazada por una cantidad que depende de su ubicación, que en general puede no ser 0.
In [64]: time.mktime(time.gmtime(0))
Out[64]: 18000.0
el inverso de time.gmtime es calendar.timegm:
In [62]: import calendar
In [65]: calendar.timegm(time.gmtime(0))
Out[65]: 0
Esto brinda una mejor explicación y un ejemplo de time.mktime (que tiene en cuenta la zona horaria actual), gracias
– Jkm
30 de enero de 2016 a las 6:21
@Jkm: NO usar mktime() con gmtime(). mktime() acepta tu hora local pero gmtime() devoluciones Hora UTC — su zona horaria local puede y es probable que sea diferente. “marca de tiempo relativa a su configuración regional” no tiene sentido: la marca de tiempo POSIX no depende de su configuración regional (zona horaria local), tiene el mismo valor en todo el mundo. “segundos desde época” es una marca de tiempo POSIX en la mayoría de los casos (incluso en Windows); cosas como las zonas horarias “correctas” que usan la escala de tiempo TAI no son comunes. Consulte ¿Time.time() de Python devuelve la marca de tiempo local o UTC?
– jfs
22 de agosto de 2016 a las 10:19
@JF Sebastián Tienes razón. En realidad, tengo algunos problemas sobre mktime() recientemente. Para algunos servidores web de Python (Tornado, por ejemplo), dado que el proceso sigue ejecutándose, incluso si cambio la configuración regional del sistema, el mktime() llamado por la API del servidor web aún usa el antigua zona horaria para generar el objeto de tiempo. tengo que cambiar a gmtime() y aplique manualmente la compensación gmt.
– Jkm
31 de agosto de 2016 a las 1:41
ep = datetime.datetime(1970,1,1,0,0,0)
x = (datetime.datetime.utcnow()- ep).total_seconds()
Esto debe ser diferente de int(time.time())pero es seguro usar algo como x % (60*60*24)
Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos.
Configurar y más información