Mur*_*hna 322 python datetime date
我有一个约会"10/10/11(m-d-y)",我想使用Python脚本添加5天.请考虑一个适用于月末的一般解决方案.
我使用以下代码:
import re
from datetime import datetime
StartDate = "10/10/11"
Date = datetime.strptime(StartDate, "%m/%d/%y")
Run Code Online (Sandbox Code Playgroud)
print Date - >正在打印 '2011-10-10 00:00:00'
现在我想在这个日期添加5天.我使用了以下代码:
EndDate = Date.today()+timedelta(days=10)
Run Code Online (Sandbox Code Playgroud)
哪个返回了这个错误:
name 'timedelta' is not defined
Run Code Online (Sandbox Code Playgroud)
Bot*_*res 488
以前的答案是正确的,但这通常是一种更好的做法:
import datetime
Run Code Online (Sandbox Code Playgroud)
那么你将拥有,使用datetime.timedelta:
date_1 = datetime.datetime.strptime(start_date, "%m/%d/%y")
end_date = date_1 + datetime.timedelta(days=10)
Run Code Online (Sandbox Code Playgroud)
DrT*_*rsa 103
timedelta先导入.
from datetime import timedelta, date
Run Code Online (Sandbox Code Playgroud)
而date将返回今天的日期时间,可能是你想要的
EndDate = date.today() + timedelta(days=10)
Run Code Online (Sandbox Code Playgroud)
fan*_*ous 16
如果你碰巧已经在使用pandas,你可以通过不指定格式来节省一点空间:
import pandas as pd
startdate = "10/10/2011"
enddate = pd.to_datetime(startdate) + pd.DateOffset(days=5)
Run Code Online (Sandbox Code Playgroud)
Atu*_*ind 11
这是使用dateutil的relativedelta在日期上添加天数的另一种方法.
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')
Run Code Online (Sandbox Code Playgroud)
输出:
今天:25/06/2015 15:56:09
5天后:2015年6月30日15:56:09
这是从现在开始+指定日期的功能
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)
Run Code Online (Sandbox Code Playgroud)
用法:
addDays = 3 #days
output_format = '%d-%m-%Y'
output = get_date(output_format, addDays)
print output
Run Code Online (Sandbox Code Playgroud)
小智 9
如果您想现在添加日期,可以使用此代码
from datetime import datetime
from datetime import timedelta
date_now_more_5_days = (datetime.now() + timedelta(days=5) ).strftime('%Y-%m-%d')
Run Code Online (Sandbox Code Playgroud)
为了使代码更简洁,并避免datetime和datetime.datetime之间的名称冲突 ,您应该使用CamelCase名称重命名这些类.
from datetime import datetime as DateTime, timedelta as TimeDelta
Run Code Online (Sandbox Code Playgroud)
所以你可以做到以下几点,我认为它更清楚.
date_1 = DateTime.today()
end_date = date_1 + TimeDelta(days=10)
Run Code Online (Sandbox Code Playgroud)
此外,如果您想稍后再进行,则不存在名称冲突import datetime.
这可能有帮助:
from datetime import date, timedelta
date1 = date(2011, 10, 10)
date2 = date1 + timedelta(days=5)
print (date2)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
354509 次 |
| 最近记录: |