我正在尝试转换两个持续时间,但是由于一个是 datetime.timedelta TypeError
c $ c>,其中一个是 datetime.time
:
I am trying to convert two "durations", however I am currently receiving a TypeError
due to one being a datetime.timedelta
and one being a datetime.time
:
TypeError: unorderable types: datetime.time() <= datetime.timedelta()
什么是有效的将 datetime.time
转换为 datetime.timedelta
的方法?
What is an efficient way to convert a datetime.time
to a datetime.timedelta
?
我已经检查了,但没有内置的方法可在这两种类型之间进行转换。
I have checked the docs and there is no built-in method for conversion between these two types.
datetime.time()
不是持续时间,而是一天中的某个时间点。如果要将其解释为持续时间,则将其转换为午夜以来的持续时间:
datetime.time()
is not a duration, it is a point in a day. If you want to interpret it as a duration, then convert it to a duration since midnight:
datetime.combine(date.min, timeobj) - datetime.min
Demo:
Demo:
>>> from datetime import datetime, date, time
>>> timeobj = time(12, 45)
>>> datetime.combine(date.min, timeobj) - datetime.min
datetime.timedelta(0, 45900)
您可能首先需要检查如何获取 datetime.time()
对象,也许到<$ c的路径更短$ c> timedelta()来自您的输入数据?例如,请勿将 datetime.time.strptime()
用于持续时间。
You may need to examine how you get the datetime.time()
object in the first place though, perhaps there is a shorter path to a timedelta()
from the input data you have? Don't use datetime.time.strptime()
for durations, for example.
这篇关于在Python 3.4中将datetime.time转换为datetime.timedelta的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!