Datetime, hayar la diferencia de fechas.

Arnau Sanchez arnau en ehas.org
Mie Mayo 3 19:40:55 CEST 2006


Buenas,

 > me gustaria saber si es posible realizar la siguiente operacion en python

¿hay algo que no se pueda hacer en python? ;-)

Javier, si no entiendo mal, quieres encontrar la diferencia de tiempo 
entre una fecha que tienes en una string y la fecha actual. En tal caso 
yo haría esto (teniendo en cuenta la cadena que das):

(nombres de variables descriptivos, porque mira que son feos)

#!/usr/bin/python
import time

fecha_servidor_cadena = "Wed, 03 May 2006 15:52:13 GMT"
fecha_servidor_tupla = time.strptime(fecha_servidor_cadena, "%a, %d %B 
%Y %H:%M:%S %Z")
fecha_servidor_segundos = int(time.strftime("%s", fecha_servidor_tupla))

fecha_actual_segundos = int(time.time())

diferencia = fecha_actual_segundos - fecha_servidor_segundos

y ya tienes la diferencia en segundos, luego la pasas a lo que te de la 
gana (minutos, horas...)

....

consideraciones:

- tienes la documentación de todo esto en: 
http://docs.python.org/lib/module-time.html

- cuidado con el tema de los "locales", si un servidor no te da la 
cadena en inglés vas a tener problemas (principalmente en el nombre del 
mes, ya que el día de la semana lo podrías eliminar, no sirve para 
nada), pero vamos, imagino que estará siempre en inglés.

- la directiva "%s" (que uso en strftime), segundos en UTC desde 1970, 
no está documentada en el módulo "time" (la he puesto por el "date" de 
linux), parece un descuido (¿quizá debamos informar?).

ya nos contarás

arnau


Javier Salinas wrote:

>
> Hola, me llamo Javier y me gustaria saber si es posible realizar la 
> siguiente operacion en python:
>
> Quiero realizar la diferencia entre dos fechas que estan en el 
> siguiente formato:
> -Una de ellas procede de una cadena de texto de la siguiente forma:
>  'Wed, 03 May 2006 15:52:13 GMT'  (que es el formato de fechas que 
> manejan los
>  servidores)
>  que habra sido creada de la siguiente forma:
>
>>>> from time import gmtime, strftime
>>>> strftime("%a, %d %b %Y %H:%M:%S GMT", gmtime())
>>>
> 'Wed, 03 May 2006 16:47:35 GMT'
>
> -La otra es un objeto datetime que se crea de la siguiente forma:
>
>>>> import time
>>>> fecha_actual = time.gmtime(time.time())
>>>> print fecha_actual
>>>
> (2006, 5, 3, 16, 41, 49, 2, 123, 0)
>
> Ahora lo que quiero hacer es restar la fecha procedente de la cadena 
> de texto y la  fecha actual que sera un objeto datetime contenido en 
> fecha_actual y obtener la diferencia(en valor absoluto). Como podría
> hcerlo?
>
> -Se que antes tengo que transformar la cadena de texto en un objeto 
> time mediante
>  strptime, pero no se como hacerlo.
>
>
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
>
>




Más información sobre la lista de distribución Python-es