将 datetime 转换为 timedelta 以便可以添加它们

10 python datetime timedelta

当减去两个datetime对象时,我理解结果是timedelta对象:

import datetime

AcDepart = 1900-01-01 18:00:00
AcArrival = 1900-01-01 07:00:00
ActualHours = AcDepart - AcArrival 
Run Code Online (Sandbox Code Playgroud)

然后我想从中减去两个其他date time对象的总和ActualHours

这是另外两个对象:

HrsEarly = 1900-01-01 02:00:00
HrsLate = 1900-01-01 00:30:00
Run Code Online (Sandbox Code Playgroud)

这是无法完成的等式:

UnCalcTime = ActualHours - (HrsEarly + HrsLate)
Run Code Online (Sandbox Code Playgroud)

这是错误:

UnCalcTime = ActualHours - (HrsEarly + HrsLate)
TypeError: unsupported operand type(s) for +: 'datetime.datetime' and 'datetime.datetime'
Run Code Online (Sandbox Code Playgroud)

所以,我显然不能添加datetime.datetime. 有谁知道我怎么能解决这个问题?可以timedelta加在一起吗?如果是这样,我该如何转换datetimetimedelta

任何帮助将不胜感激,因为我一直试图解决这个问题很长时间没有成功。

Mar*_*som 5

最好的解决方案是像timedelta最初一样创建变量。

HrsEarly = datetime.timedelta(hours=2)
HrsLate = datetime.timedelta(minutes=30)
Run Code Online (Sandbox Code Playgroud)

如果你不能这样做,你可以简单地从datetime对象中减去你的“零日期” 。

>>> HrsEarly
datetime.datetime(1900, 1, 1, 2, 0)
>>> HrsEarly = HrsEarly - datetime.datetime(1900, 1, 1)
>>> HrsEarly
datetime.timedelta(0, 7200)
Run Code Online (Sandbox Code Playgroud)