在datetime中添加天数并在python中转换为字符串格式

时间:2017-11-02 18:55:10

标签: python-3.x selenium datetime webdriver pycharm

我有一个代码要求,其中“过期日期”应为字符串格式的当前日期的+3天。以下是我的代码,

import datetime
now = datetime.datetime.utcnow()  #Today's date is '2/11/2017'
expires_at = '%d/%d/%d' % (now.day + 3, now.month, now.year)

这完美地工作,输出类似于预期的“5/11/2017”。但是,当前日期为28或29时,此代码会中断。 Python以某种方式将日期添加到33rd而不是跳到本月的第1天。我已经完成了我的研究并找到了一个可以在Python控制台中运行的解决方案(下面),但是无法在Selenium Web Driver和Pycharm下运行。

>>> from datetime import datetime, timedelta
>>> m = '29/10/2017'
>>> date = datetime.strptime(m, "%d/%m/%Y")
>>> modified_date = date + timedelta(days=3)
>>> datetime.strftime(modified_date, "%d/%m/%Y")
'01/11/2017'

在pycharm下运行相同的代码时,会发生以下错误:

Error
Traceback (most recent call last):
   date = datetime.strptime(m, "%d/%m/%Y")
Exception: module 'datetime' has no attribute 'strptime'

感谢任何帮助。如果有人好奇,我正在使用python 3.6.1。可能缺少一些非常小的东西(2个可能的解决方案,但没有一个工作),但坚持这个代码3天,无法找到正确的解决方案。

2 个答案:

答案 0 :(得分:1)

确保您的代码中没有以下内容:

import datetime

如果你这样做,它会崩溃。像:

from datetime import datetime, timedelta
import datetime
m = '29/10/2017'
date = datetime.strptime(m, "%d/%m/%Y")`


Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'datetime' has no attribute 'strptime'

答案 1 :(得分:0)

在上一张海报的帮助下,我发现我正在处理一些问题 1)我从datetime import datetime,timedelta&#34;添加&#34;和&#34;导入日期时间&#34;一起。删除其中一个解决了我的大部分问题。 2)要使用&#34;从datetime import datetime&#34;获取当前日期,我执行了以下操作:

from datetime import datetime
now = "{:%Y_%m_%d}".format(datetime.now())
print(now)

我得到的输出是,

'2017_11_03'  #today's date

我只需要指定&#39; datetime&#39;曾经,即&#34; datetime.now()&#34;因为我正在导入课程&#34; datetime&#34;来自&#34; datetime&#34;模块。