Estoy tratando de restar un día de esta fecha 06-30-2019 para hacerlo 06-29-2019 pero no puedo encontrar ninguna manera de lograrlo.

He intentado con:

import datetime

date = "06-30-2019"
date = datetime.datetime.strptime(date,'%m-%d-%Y').strftime('%m-%d-%Y')
print(date)

Seguramente me devuelve la fecha que usé anteriormente.

¿Cómo puedo restar un día de una fecha en el formato anterior?

0
robots.txt 9 oct. 2019 a las 01:30

3 respuestas

La mejor respuesta

Probar esto

import datetime

date = "06/30/19" 
date = datetime.datetime.strptime(date, "%m/%d/%y") 
NewDate = date + datetime.timedelta(days=-1)

print(NewDate)  # 2019-06-29 00:00:00
1
Daniel Malachov 8 oct. 2019 a las 22:55

Usar timedelta

import datetime
date = datetime.datetime.strptime("06/30/19" ,"%m/%d/%y")
print( date - datetime.timedelta(days=1))
0
Pooja 9 oct. 2019 a las 09:18

Su código:

date = "06-30-2019"
date = datetime.datetime.strptime(date,'%m-%d-%Y').strftime('%m-%d-%Y')

Verifique el tipo de variable de fecha.

type(date)
Out[]: str 

Está en formato de cadena. Para realizar la operación de resta, primero debe convertirla al formato de fecha. Puede usar pd.to_datetime ()

# Import packages
import pandas as pd
from datetime import timedelta

# input date
date = "06-30-2019"
# Convert it into pd.to_datetime format
date = pd.to_datetime(date)
print(date)
# Substracting days
number_of_days = 1
new_date = date - timedelta(number_of_days)
print(new_date)

Salida:

2019-06-29 00:00:00

Si desea deshacerse de la marca de tiempo, puede usar:

str(new_date.date())
Out[]: '2019-06-29'
1
Sayali Sonawane 9 oct. 2019 a las 09:07
58294821