Foros del Web » Programando para Internet » Python »

Transformar fecha a formato UNIX

Estas en el tema de Transformar fecha a formato UNIX en el foro de Python en Foros del Web. Buenas, Me gustaría poder transformar fechas tipo 10-11-2009 o 2009-11-10 en formato UNIX 1254348000 1257030000 etc.. No he encontrado la función de python que realiza ...
  #1 (permalink)  
Antiguo 11/11/2009, 07:14
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 8 meses
Puntos: 20
Transformar fecha a formato UNIX

Buenas,

Me gustaría poder transformar fechas tipo 10-11-2009 o 2009-11-10 en formato UNIX
1254348000
1257030000
etc..

No he encontrado la función de python que realiza esta tranformación.

¿Alguien conoce cual es?

Muchas gracias de antemano
  #2 (permalink)  
Antiguo 11/11/2009, 09:03
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Transformar fecha a formato UNIX

Hola neodani,
Si puedes leer inglés, aquí tienes la explicación de por qué el módulo datetime no convierte hacia marca de tiempo: http://bytes.com/topic/python/answer...time-timestamp

Para la conversión, este es el mecanismo:
Código python:
Ver original
  1. import datetime
  2. import time
  3.  
  4. fecha = datetime.datetime(parametros, dia, mes, año, etc)
  5. marca_de_tiempo = time.mktime(fecha.timetuple())

Saludos.
  #3 (permalink)  
Antiguo 11/11/2009, 12:05
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 8 meses
Puntos: 20
Respuesta: Transformar fecha a formato UNIX

Cita:
Iniciado por AlvaroG Ver Mensaje
Hola neodani,
Si puedes leer inglés, aquí tienes la explicación de por qué el módulo datetime no convierte hacia marca de tiempo: http://bytes.com/topic/python/answer...time-timestamp

Para la conversión, este es el mecanismo:
Código python:
Ver original
  1. import datetime
  2. import time
  3.  
  4. fecha = datetime.datetime(parametros, dia, mes, año, etc)
  5. marca_de_tiempo = time.mktime(fecha.timetuple())

Saludos.
Muchas gracias,

Qué significa el último valor .0
Hay alguna forma de evitar que aparezca eso, y que solo salga los 10 digitos de la fecha UNIX?


Código python:
Ver original
  1. import datetime
  2. import time
  3.  
  4. fecha = datetime.datetime(2009,11,20)
  5. marca_de_tiempo = time.mktime(fecha.timetuple())
  6. print marca_de_tiempo

Salida
1258671600.0

Muchas gracias
  #4 (permalink)  
Antiguo 11/11/2009, 12:15
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Transformar fecha a formato UNIX

Eso es porque la marca de tiempo se genera internamente con valores en fracciones de segundo (es decir, 1.235 segundos por ejemplo), tan preciso como el sistema lo proporcione.
En python la llamada a time.time() devuelve siempre un flotante, no un entero.

Si solamente necesitas los segundos, puedes convertir ese valor a entero con int()

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

Saludos.
  #5 (permalink)  
Antiguo 11/11/2009, 12:31
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 8 meses
Puntos: 20
Respuesta: Transformar fecha a formato UNIX

Cita:
Iniciado por AlvaroG Ver Mensaje
Eso es porque la marca de tiempo se genera internamente con valores en fracciones de segundo (es decir, 1.235 segundos por ejemplo), tan preciso como el sistema lo proporcione.
En python la llamada a time.time() devuelve siempre un flotante, no un entero.

Si solamente necesitas los segundos, puedes convertir ese valor a entero con int()

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

Saludos.
Graaaande AlvaroG, aun me queda mucho por aprender

Muchas gracias!
  #6 (permalink)  
Antiguo 11/11/2009, 12:37
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Transformar fecha a formato UNIX

Cita:
Iniciado por neodani Ver Mensaje
Graaaande AlvaroG, aun me queda mucho por aprender

Muchas gracias!
A todos nos queda mucho por aprender... y eso es lo que lo hace divertido
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:58.