2010-11-15 16 views
15
time1 = "2010-04-20 10:07:30" 
time2 = "2010-04-21 10:07:30" 

¿Cómo convertir lo anterior de la cadena a la marca de tiempo?str to time en python

Necesito restar las marcas de tiempo anteriores time2-time1.

+0

dupe! tan muchas veces. – SilentGhost

Respuesta

18

Para Python 2.5+

from datetime import datetime 
format = '%Y-%m-%d %H:%M:%S' 
print datetime.strptime(time2, format) - 
     datetime.strptime(time1, format) 
# 1 day, 0:00:00 

Editar: para Python 2,4

import time 
format = '%Y-%m-%d %H:%M:%S' 
print time.mktime(time.strptime(time2, format)) - 
     time.mktime(time.strptime(time1, format)) 
# 86400.0 
+0

Me sale un error al decir AttributeError: tipo objeto 'datetime.datetime' no tiene atributo 'strptime' estoy usando python 2.4 – Rajeev

+0

@Rajeev, ¿puedes actualizar? 2.4 es muy viejo –

-1
import time 

time1 = "2010-04-20 10:07:30" 

time_tuple = time.strptime(time1, "%Y-%m-%d %H:%M:%S") 

timestamp = time.mktime(time_tuple) 
2
>>> t1 = datetime.strptime(time1, "%Y-%m-%d %H:%M:%S") 
>>> t2 = datetime.strptime(time2, "%Y-%m-%d %H:%M:%S") 
>>> t2-t1 
datetime.timedelta(1) 

>>> (t2-t1).days 
1 
>>> (t2-t1).seconds 
0 
3

Si está atrapado en el sistema de Python 2.4 como yo:

from time import strptime 
from datetime import datetime 

str_to_datetime = lambda st: datetime(*strptime(st, '%Y-%m-%d %H:%M:%S')[:6]) 

str_to_datetime('2010-04-20 10:07:30') 

De lo contrario, datetime.strptime() funcionará correctamente.