Python 将用户输入转换为时间并将其从主时间中减去

Python 将用户输入转换为时间并将其从主时间中减去,python,time,kivy,Python,Time,Kivy,我正在为自己做一些项目,我被一项任务困住了 I have strict time that's 30min I have a user that gives an input like: 24008 我需要将用户输入转换为时间(2分钟:40秒:08毫秒),并从主时间中减去它。 我尝试了time.strftime(“%M:%S:%f',1800)来显示主时间(30分钟),如30:00:00,但我似乎没有得到日期时间或时间导入以及它们是如何工作的。与用户输入相同 任何一个心地善良的人都能引导我找到

我正在为自己做一些项目,我被一项任务困住了

I have strict time that's 30min
I have a user that gives an input like: 24008
我需要将用户输入转换为时间(2分钟:40秒:08毫秒),并从主时间中减去它。 我尝试了time.strftime(“%M:%S:%f',1800)来显示主时间(30分钟),如30:00:00,但我似乎没有得到日期时间或时间导入以及它们是如何工作的。与用户输入相同

任何一个心地善良的人都能引导我找到一条正确的道路,告诉我如何完成这一逻辑,通过什么样的功能

我无法共享代码,因为我没有用于此代码的任何工作逻辑。

对象可能是用于此代码的最佳数据结构

您的初始值30分钟的定义如下

import datetime
strict_time = datetime.time(minutes=30)
如果您作为示例提供的用户输入始终是输入格式,那么就有点难以解析,因为python的datetime模块的strTime行为不处理2位毫秒输入和1位分钟输入。如果输入格式完全相同(5位数字,1分钟数字,2秒数字和2毫秒数字),则以下方法可行

user_input = '24008'
input_time = datetime.timedelta(
    minutes=int(user_input[0]),
    seconds=int(user_input[1:2]),
    microseconds=int(user_input[3:4])
)

new_time = strict_time - input_time

用户输入的格式是否始终相同?是。我正在尝试这样做,但在kivy中:当我尝试在IDE中运行最后一条指令时,它给出了以下信息:TypeError:不支持的操作数类型-:“datetime.time”和“datetime.time”那么如何对这两个时间进行减法?啊,很抱歉,您应该使用datetime.timedelta对象作为输入。更新了答案现在出现了一些不同的情况:TypeError:不支持的操作数类型为-:“datetime.time”和“datetime.timedelta”。另外,还有一个问题:当我将用户输入到输入时间时,它给出的是0:02:04而不是0:02:40:08。知道怎么绕过它吗?