2010-06-23 105 views
6

¿Qué método de fecha y hora de Python debería usar para convertir el tiempo en HH: MM: SS a tiempo decimal en segundos? Los tiempos representan duraciones de tiempo (la mayoría son menos de un minuto) y no están conectados a una fecha.Tiempo hasta la hora decimal en Python

Respuesta

12
t = "1:12:23" 
(h, m, s) = t.split(':') 
result = int(h) * 3600 + int(m) * 60 + int(s) 
7

Si por "tiempo decimal" que significa un número entero de segundos, entonces es probable que desee utilizar datetime.timedelta:

>>> import datetime 
>>> hhmmss = '02:29:14' 
>>> [hours, minutes, seconds] = [int(x) for x in hhmmss.split(':')] 
>>> x = datetime.timedelta(hours=hours, minutes=minutes, seconds=seconds) 
>>> x 
datetime.timedelta(0, 8954) 
>>> x.seconds 
8954 

(Si realmente quería un Decimal, por supuesto, es bastante fácil para llegar allí ...)

>>> import decimal 
>>> decimal.Decimal(x.seconds) 
Decimal('8954') 
+0

Pero n.b. que si hay un componente de microsegundos, esto lo truncará. –

0

con el módulo de datetime:

>>> t = datetime.time(12,31,53) 
>>> ts = t.hour * 3600 + t.minute * 60 + t.second 
>>> print ts 
45113