在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时间, 则不会有名称冲突 。