如何在 Python 中将 timedelta 转换为时间?

Cíc*_*ves -2 python time timedelta

我这样做了:

str_7 = str(waiting_time - timedelta(microseconds=waiting_time.microseconds)).split(":")
col_7 = time(int(str_7[0]), int(str_7[1]), int(str_7[2]))
Run Code Online (Sandbox Code Playgroud)

这段代码正确吗?

Mar*_*ers 5

如果waiting_time是日期时间,waiting_time - timedelta()也是. 您可以只使用该对象来从中获取对象:datetime.time()datetime.time()

new_dt = waiting_time - timedelta(microseconds=waiting_time.microseconds)
col_7 = new_dt.time()
Run Code Online (Sandbox Code Playgroud)

但是,如果您所做的只是删除组件waiting_time.microseconds,请使用以下datetime.datetime.replace()方法执行此操作

col_7 = waiting_time.replace(microsecond=0).time()
Run Code Online (Sandbox Code Playgroud)

或者,如果您需要生成一个用于时间的字符串,则使用datetime.strftime()生成一个忽略微秒部分的字符串:

col_7 = waiting_time.strftime('%H:%M:%S')  # hours:minutes:seconds
Run Code Online (Sandbox Code Playgroud)