如何以相同的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"
之类的字符串来获得与上面相同的结果?
答案 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
然后在您的问题中显示该日期对象的数学。
答案 2 :(得分:3)
你大部分都在那里!除了将日期转换为格式化字符串的strftime
函数外,还有一个strptime
函数可以转换回另一种方式。
要解决您的问题,您只需将date.today()
替换为strptime(yourDateString, '%Y%m%d')
。
ED :当然,您还必须在strptime
行的末尾添加from datetime import
。