create - Python timedelta eliminar microsegundos
strftime python example (4)
Hago un cálculo del tiempo promedio y me gustaría mostrar el promedio resultante sin microsegundos.
avg = sum(datetimes, datetime.timedelta(0)) / len(datetimes)
Gracias
Si es solo para la pantalla, esta idea funciona:
avgString = str(avg).split(".")[0]
La idea es tomar solo lo que está antes del punto. Volverá 01:23:45 para 01: 23: 45.1235
Toma el timedetla y elimina sus propios microsegundos, como microsegundos y atributo de solo lectura:
avg = sum(datetimes, datetime.timedelta(0)) / len(datetimes)
avg = avg - datetime.timedelta(microseconds=avg.microseconds)
Puedes hacer tu propia pequeña función si es una necesidad recurrente:
import datetime
def chop_microseconds(delta):
return delta - datetime.timedelta(microseconds=delta.microseconds)
No he encontrado una mejor solución.
Otra opción, dado timedetla que puedes hacer:
avg = datetime.timedelta(seconds=math.ceil(avg.total_seconds()))
Puede reemplazar math.ceil()
, con math.round()
o math.floor()
, dependiendo de la situación.
Puede modificar los elementos de datetimes como sigue:
In [1]: datetime.datetime.now().replace(hour=0, minute=0, second=0, microsecond=0)
Out[1]: datetime.datetime(2017, 4, 28, 0, 0)