2024-05-19 13:33:43 发布
网友
我正在尝试转换两个“持续时间”,但由于一个是datetime.timedelta,另一个是datetime.time,我当前正在接收TypeError:
datetime.timedelta
datetime.time
TypeError
TypeError: unorderable types: datetime.time() <= datetime.timedelta()
什么是将datetime.time转换为datetime.timedelta的有效方法?
我已经检查了docs,并且没有用于在这两种类型之间进行转换的内置方法。
我找到了一个解决方案,虽然不一定有效:
import datetime x = datetime.timedelta(hours=x.hour, minutes=x.minute, seconds=x.second, microseconds=x.microsecond)
其中x是一个datetime.time对象。
x
datetime.time()不是持续时间,而是一天中的一个点。如果要将其解释为持续时间,请将其转换为自午夜起的持续时间:
datetime.time()
datetime.combine(date.min, timeobj) - datetime.min
演示:
>>> from datetime import datetime, date, time >>> timeobj = time(12, 45) >>> datetime.combine(date.min, timeobj) - datetime.min datetime.timedelta(0, 45900)
但是,您可能需要首先检查如何获取datetime.time()对象,也许从您拥有的输入数据到timedelta()的路径更短?例如,不要对持续时间使用datetime.time.strptime()。
timedelta()
datetime.time.strptime()
我找到了一个解决方案,虽然不一定有效:
其中
x
是一个datetime.time
对象。datetime.time()
不是持续时间,而是一天中的一个点。如果要将其解释为持续时间,请将其转换为自午夜起的持续时间:演示:
但是,您可能需要首先检查如何获取
datetime.time()
对象,也许从您拥有的输入数据到timedelta()
的路径更短?例如,不要对持续时间使用datetime.time.strptime()
。相关问题 更多 >
编程相关推荐