sistema - restar fechas con python
Agregando 5 días a una fecha en Python (8)
Aquí está una función de conseguir desde ahora + días especificados.
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)
Uso:
addDays = 3 #days
output_format = ''%d-%m-%Y''
output = get_date(output_format, addDays)
print output
Tengo una fecha "10/10/11(mdy)"
y quiero agregarle 5 días usando un script de Python. Por favor, considere una solución general que funciona en el mes termina también.
Estoy usando el siguiente código:
import re
from datetime import datetime
StartDate = "10/10/11"
Date = datetime.strptime(StartDate, "%m/%d/%y")
print Date
-> está imprimiendo ''2011-10-10 00:00:00''
Ahora quiero agregar 5 días a esta fecha. Use el siguiente código:
EndDate = Date.today()+timedelta(days=10)
Que devolvió este error:
name ''timedelta'' is not defined
Aquí hay otro método para agregar días en la fecha usando el relativedelta de dateutil .
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'')
Salida:
Hoy: 25/06/2015 15:56:09
Después de 5 días: 30/06/2015 15:56:09
Importar timedelta
primero.
from datetime import timedelta
Y Date.today()
devolverá la fecha y hora de hoy, puede ser que desee
EndDate = Date + timedelta(days=10)
Las respuestas anteriores son correctas, pero generalmente es una mejor práctica:
import datetime
Entonces tendrás, usando datetime.timedelta
:
date_1 = datetime.datetime.strptime(start_date, "%m/%d/%y")
end_date = date_1 + datetime.timedelta(days=10)
Para tener un código menos detallado y evitar conflictos de nombres entre datetime y datetime.datetime , debe cambiar el nombre de las clases con nombres CamelCase .
from datetime import datetime as DateTime, timedelta as TimeDelta
Así que puedes hacer lo siguiente, que creo que está claro.
date_1 = DateTime.today()
end_date = date_1 + TimeDelta(days=10)
Además, no habría conflicto de nombres si desea import datetime
más adelante.
Si desea agregar días a la fecha ahora, puede usar este código
from datetime import datetime
from datetime import timedelta
date_now_more_5_days = (datetime.now() + timedelta(days=5) ).strftime(''%Y-%m-%d'')
Si ya estás usando pandas, puedes ahorrar un poco de espacio al no especificar el formato:
import pandas as pd
startdate = "10/10/2011"
enddate = pd.to_datetime(startdate) + pd.DateOffset(days=5)
Supongo que te estás perdiendo algo así:
from datetime import timedelta