从“YYYYMMDD”格式化字符串计算第二天

时间:2011-05-11 11:59:44

标签: python python-2.4

如何以相同的YYYYMMDD格式从20110531这样的字符串计算第二天?在这种特殊情况下,我希望将20110601作为结果。以静态方式计算“明天”或第二天并不是那么难,比如:

>>> from datetime import date, timedelta
>>> (date.today() + timedelta(1)).strftime('%Y%m%d')
'20110512'
>>>
>>> (date(2011,05,31) + timedelta(1)).strftime('%Y%m%d')
'20110601'

但是如何使用像dt = "20110531"之类的字符串来获得与上面相同的结果?

3 个答案:

答案 0 :(得分:11)

以下是如何操作的示例:

import time
from datetime import date, timedelta

t=time.strptime('20110531','%Y%m%d')
newdate=date(t.tm_year,t.tm_mon,t.tm_mday)+timedelta(1)
print newdate.strftime('%Y%m%d')

答案 1 :(得分:4)

>>> from datetime import datetime
>>> print datetime.strptime('20110531', '%Y%m%d')
2011-05-31 00:00:00

然后在您的问题中显示该日期对象的数学。

The datetime library docs.

答案 2 :(得分:3)

你大部分都在那里!除了将日期转换为格式化字符串的strftime函数外,还有一个strptime函数可以转换回另一种方式。

要解决您的问题,您只需将date.today()替换为strptime(yourDateString, '%Y%m%d')

ED :当然,您还必须在strptime行的末尾添加from datetime import