我需要在当前时间上加一个小时,然后用会议记录减去它。
例如:当前时间= 7: 31,附加时间= 7:31 +1小时= 8:31,所需时间= 8:31 -31= 8:00。
任何帮助或解决办法都将不胜感激。
from datetime import datetime, timedelta
import time
addedtime = (datetime.now() + timedelta(hours=1)).strftime('%H:%M')
requiredtime = addedtime - timedelta(now.minutes).strftime('%H:%M')发布于 2019-10-17 14:29:43
您将addedtime设置为字符串而不是datetime,然后陷入麻烦,因为您试图从该字符串中减去一个timedelta:
>>> addedtime = (datetime.now() + timedelta(hours=1)).strftime('%H:%M')
>>> addedtime
'23:30'
>>> addedtime - timedelta(minutes=4)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for -: 'str' and 'datetime.timedelta'相反,只要您需要将它们作为时点操作,并在需要最终结果时将它们转换为字符串,则将它们保留为时间点:
>>> time1 = datetime.now()
>>> time1
datetime.datetime(2019, 10, 17, 22, 23, 55, 860195)
>>> time2 = time1 + timedelta(hours=1)
>>> time2
datetime.datetime(2019, 10, 17, 23, 23, 55, 860195)
>>> time3 = time2 - timedelta(minutes=time2.minute)
>>> time3
datetime.datetime(2019, 10, 17, 23, 0, 55, 860195)
>>> time3.strftime("%H:%M")
'23:00'当然,您也可以将其作为一个操作来执行,因为您可以使用单个timedelta增加一个小时并减去一些分钟。
>>> final = (time1 + timedelta(hours=1, minutes=-time1.minute)).strftime("%H:%M")
>>> final
'23:00'发布于 2019-10-17 14:43:03
为什么不探索Python的许多令人惊奇的日期时间库..。
pip安装parsedatetime
import parsedatetime as pdt
from datetime import datetime
if __name__ == '__main__':
cal = pdt.Calendar()
dt, result = cal.parse("10 minutes before an hour from now")
print(datetime(*dt[:6]))https://stackoverflow.com/questions/58434722
复制相似问题