在Python中添加5天的date

我有一个date"10/10/11(mdy)" ,我想用Python脚本添加5天。 请考虑在月底工作的一般解决scheme。

我正在使用以下代码:

 import re from datetime import datetime StartDate = "10/10/11" Date = datetime.strptime(StartDate, "%m/%d/%y") 

print Date – >正在打印'2011-10-10 00:00:00'

现在我想添加5天到这个date。 我使用了下面的代码:

 EndDate = Date.today()+timedelta(days=10) 

哪个返回了这个错误:

 name 'timedelta' is not defined 

以前的答案是正确的,但通常是一个更好的做法:

 import datetime 

那么你将使用datetime.timedelta

 date_1 = datetime.datetime.strptime(start_date, "%m/%d/%y") end_date = date_1 + datetime.timedelta(days=10) 

先导入timedelta

 from datetime import timedelta 

Date.today()将返回今天的date时间,可能是你想要的

 EndDate = Date + timedelta(days=10) 

我想你错过了这样的事情:

 from datetime import timedelta 

这是从现在开始+指定date的function

 import datetime def get_date(dateFormat="%d-%m-%Y", addDays=0): timeNow = datetime.datetime.now() if (addDays!=0): anotherTime = timeNow + datetime.timedelta(days=addDays) else: anotherTime = timeNow return anotherTime.strftime(dateFormat) 

用法:

 addDays = 3 #days output_format = '%d-%m-%Y' output = get_date(output_format, addDays) print output 

这里是另一种使用dateutil的relativedelta添加date的方法。

 from datetime import datetime from dateutil.relativedelta import relativedelta print 'Today: ',datetime.now().strftime('%d/%m/%Y %H:%M:%S') date_after_month = datetime.now()+ relativedelta(days=5) print 'After 5 Days:', date_after_month.strftime('%d/%m/%Y %H:%M:%S') 

输出:

今天:25/06/2015 15:56:09

5天后:30/06/2015 15:56:09

如果您碰巧已经在使用pandas,您可以通过不指定格式来节省一点空间:

 import pandas as pd startdate = "10/10/2011" enddate = pd.to_datetime(startdate) + pd.DateOffset(days=5) 

为了减less冗长的代码 ,避免datetime和datetime.datetime之间的 名称冲突 ,应该使用CamelCase名称来重命名这些类。

 from datetime import datetime as DateTime, timedelta as TimeDelta 

所以你可以做下面的事情,我觉得很清楚。

 date_1 = DateTime.today() end_date = date_1 + TimeDelta(days=10) 

此外,如果您稍后要import datetime时间, 则不会有名称冲突