¿Cómo retrocede gmtime()
, donde pone la hora + fecha y obtiene el número de segundos?
Tengo cadenas como 'Jul 9, 2009 @ 20:02:58 UTC'
, y quiero recuperar el número de segundos entre la época y el 9 de julio de 2009.
Lo he intentado time.strftime
pero no sé cómo usarlo correctamente, o si es el comando correcto.
Use el módulo de tiempo :
fuente
time
usa Unix epoch (1970).time.time()
valor NO depende de la zona horaria local (si excluimos las zonas horarias "correctas" y similares), por ejemplo, si devuelve el tiempo POSIX (como lo hace en la mayoría de los sistemas), entonces es el número de segundos SI desde La Época (1970-01-01UTC) sin contar los segundos bisiestos. Este valor se puede convertir a UTC (excluyendo los segundos bisiestos) pero no es UTC . @MarlonAbeykoon: Me gusta esta respuestaTenga en cuenta que
time.gmtime
asigna la marca0
de tiempo a1970-1-1 00:00:00
.time.mktime(time.gmtime(0))
le proporciona una marca de tiempo desplazada por una cantidad que depende de su ubicación, que en general puede no ser 0.El inverso de
time.gmtime
escalendar.timegm
:fuente
mktime()
congmtime()
.mktime()
acepta su hora local perogmtime()
devuelve la hora UTC : su zona horaria local puede y es probable que sea diferente. la "marca de tiempo relativa a su localidad" no tiene sentido: la marca de tiempo POSIX no depende de su localidad (zona horaria local); es el mismo valor en todo el mundo. "segundos desde la época" es la 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 ¿Devuelve time.time () de Python la marca de tiempo local o UTC?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, lamktime()
llamada por la API del servidor web todavía usa la zona horaria anterior para generar el objeto de tiempo. Tengo que cambiargmtime()
y aplicar manualmente el desplazamiento gmt.Esto debería ser diferente de
int(time.time())
, pero es seguro usar algo comox % (60*60*24)
datetime - Tipos básicos de fecha y hora:
fuente
fuente
from datetime import datetime
o hacesdatetime.datetime.strptime
Hay dos formas, según su marca de tiempo original:
mktime()
ytimegm()
http://docs.python.org/library/time.html
fuente