[英]comparing datetime.timedelta and datetime.time in python
[英]Convert datetime.time into datetime.timedelta in Python 3.4
我正在尝试转换两个“持续时间”,但是由于一个是datetime.timedelta
,另一个是datetime.time
,我目前正在收到TypeError
:
TypeError: unorderable types: datetime.time() <= datetime.timedelta()
什么是一个转换的有效方式datetime.time
到datetime.timedelta
?
我已经检查了文档 ,这两种类型之间没有内置的转换方法。
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()
用于持续时间。
这是我发现的一种解决方案,尽管不一定有效:
import datetime
x = datetime.timedelta(hours=x.hour, minutes=x.minute, seconds=x.second, microseconds=x.microsecond)
其中x
是datetime.time
对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.