[英]Convert datetime.time in datetime.datetime
i want to calculate difference in seconds, between two dates.我想计算两个日期之间的秒数差异。
def delta_seconds(datetime, origin):
td = datetime - origin # datetime - date
return float((td.microseconds + (td.seconds + td.days * 24 * 3600) * 10 ** 6)) / 10 ** 6
I can't compute the difference and it shows me this error:我无法计算差异,它向我显示了这个错误:
TypeError: unsupported operand type(s) for -: 'datetime.time' and 'datetime.datetime
So, i want to convert datetime.time into datetime.datetime.所以,我想将 datetime.time 转换为 datetime.datetime。
(datetime is a datetime.time obj and origin is a datetime.datetime obj) (datetime 是 datetime.time obj,origin 是 datetime.datetime obj)
Any suggestion?有什么建议吗?
The subtraction of two different datetime
already returns a delta.两个不同
datetime
时间的减法已经返回一个增量。 timedelta 时间增量
The params origin
and datetime
have to be a datetime
object.参数
origin
和datetime
时间必须是datetime
时间 object。 Either make both params to a datetime
object or the object that is datetime.time
to an current date time` object.要么将两个参数设为
datetime
时间 object,要么将日期时间的datetime.time
设为当前日期时间object。
For converting your time
to datetime
, this may help or you adjust the fields manually.要将您的
time
转换为datetime
, 这可能会有所帮助,或者您可以手动调整字段。
import datetime
t = datetime.time(1, 2, 3)
print('t :', t)
d = datetime.date.today()
print('d :', d)
dt = datetime.datetime.combine(d, t)
print('dt:', dt)
t : 01:02:03
d : 2013-02-21
dt: 2013-02-21 01:02:03
datetime.datetime
objects gives you datetime.timedelta
which already has a class attribute, seconds
which you can return from your function.datetime.datetime
对象之间的差异为您提供了datetime.timedelta
,它已经具有 class 属性,您可以从 function 返回seconds
。datetime.combine
to combine datetime.date
and datetime.time
.datetime.combine
来组合datetime.date
和datetime.time
。 Demo:演示:
from datetime import datetime, date, time
def delta_seconds(end, origin):
return (end - origin).seconds
# Test
date = date(2021, 5, 3)
time = time(10, 20, 30)
origin = datetime.combine(date, time)
end = datetime.now()
print(delta_seconds(end, origin))
Output: Output:
33213
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.