Python 将datetime.time转换为秒

Python 将datetime.time转换为秒,python,time,Python,Time,我有一个类型为datetime.time的对象。如何将其转换为以秒为单位表示其持续时间的整数?或者一个字符串,然后我可以通过拆分将其转换为第二个表示形式?您可以自己计算: from datetime import datetime t = datetime.now().time() seconds = (t.hour * 60 + t.minute) * 60 + t.second 您需要将datetime.time对象转换为datetime.timedelta才能使用函数 它将返回一个浮点

我有一个类型为
datetime.time
的对象。如何将其转换为以秒为单位表示其持续时间的整数?或者一个字符串,然后我可以通过拆分将其转换为第二个表示形式?

您可以自己计算:

from datetime import datetime

t = datetime.now().time()
seconds = (t.hour * 60 + t.minute) * 60 + t.second

您需要将
datetime.time
对象转换为
datetime.timedelta
才能使用函数

它将返回一个
浮点值
,而不是问题中所问的整数,但您可以轻松地将其转换为整数

>>> from datetime import datetime, date, time, timedelta
>>> timeobj = time(12, 45)
>>> t = datetime.combine(date.min, timeobj) - datetime.min
>>> isinstance(t, timedelta)
# True
>>> t.total_seconds()
45900.0
我的灵感来源于以下链接:


如果对象应该表示持续时间,则应使用
datetime.timedelta
而不是
datetime.time

表示一天中的某个时间


表示一个持续时间,并有一个能完全满足您需要的
total_seconds()
方法。

正如@Owl Max所建议的,获得时间整数表示的最简单方法是使用timedelta。尽管如此,我还是想分享一种不同的方法来构建timedelta

我喜欢使用的一个有用的衬里是:

import datetime
t = datetime.time(10, 0, 5)
int(datetime.timedelta(hours=t.hour, minutes=t.minute, seconds=t.second).total_seconds())

(注:通常这是一条注释)

Duration假设您有两个datetime.time对象,它们之间的差值为秒。您是否正在计算两个datetime.time对象之间的秒差?简洁易懂的解释!