Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Datetime模块和Timedelta_Python 3.x - Fatal编程技术网

Python 3.x Datetime模块和Timedelta

Python 3.x Datetime模块和Timedelta,python-3.x,Python 3.x,我需要在当前时间上加上一小时,再减去分钟,e 例如:当前时间=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(

我需要在当前时间上加上一小时,再减去分钟,e

例如:当前时间=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')

您将
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'

当然,您也可以将其作为一个单独的操作来执行,因为您可以使用单个
timedelta
来添加一个小时和减去几分钟:

>>> final = (time1 + timedelta(hours=1, minutes=-time1.minute)).strftime("%H:%M")
>>> final
'23:00'

为什么不探索一下Python的众多惊人的datetime库中的一个呢

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]))

非常感谢,@paxdiablo,刚开始编写代码,对某些模块的工作方式并不熟悉。你能帮我解决第二个问题吗?@Raghul,so的正常用法是一个问题,一个答案。如果你有一个后续问题,最好是问一个新问题(如果有必要的话,回指这个问题,因为这是一个完全不同的问题),好的,我会发布一个新问题。(谢谢)
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]))