在python中将时间(HH:MM:SS)转换为分钟

pre*_*lpi 2 python string datetime python-2.7

如何将HH:MM:SS转换为分钟?

我尝试下面工作正常:

  import datetime as DT
  t1 = DT.datetime.strptime('0:10:00', '%H:%M:%S')
Run Code Online (Sandbox Code Playgroud)

我尝试了另一个例子并收到错误:

  import datetime as DT
  t1 = DT.datetime.strptime('9715:56:46', '%H:%M:%S')
Run Code Online (Sandbox Code Playgroud)

错误:

  ValueError: time data '9715:56:46' does not match format '%H:%M:%S'
Run Code Online (Sandbox Code Playgroud)

在这个例子中它支持%23为%H,如果我的小时数超过23(在这种情况下我有9715小时)如何获得它?

jpp*_*jpp 7

您可以使用sum生成器表达式或map

from operator import mul

my_time = '9715:56:46'
factors = (60, 1, 1/60)

t1 = sum(i*j for i, j in zip(map(int, my_time.split(':')), factors))
t2 = sum(map(mul, map(int, my_time.split(':')), factors))

print(t1)  # 582956.7666666667

assert t1 == t2
Run Code Online (Sandbox Code Playgroud)


Ada*_*nes 7

datetime.datetime 是时间点的表示,而不是持续时间.

datetime.timedelta是一段时间的代表.注意:

from datetime import timedelta


delta = timedelta(hours=9715, minutes=56, seconds=46)
total_seconds = delta.total_seconds()
minutes = int(total_seconds // 60)
seconds = int(total_seconds % 60)

print('{minutes}:{seconds}'.format(minutes=minutes, seconds=seconds))
Run Code Online (Sandbox Code Playgroud)

编辑:我更改了代码以使用python 2.7.