Невозможно вычесть день из любого определенного формата даты - PullRequest
0 голосов
/ 09 октября 2019

Я пытаюсь вычесть день из этой даты 06-30-2019, чтобы сделать его 06-29-2019, но не могу придумать, как этого добиться.

Я пробовал с:

import datetime

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

Это, безусловно, возвращает мне дату, которую я использовал выше.

Как вычесть день из даты в вышеуказанном формате?

Ответы [ 3 ]

1 голос
/ 09 октября 2019

попробуйте

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 голос
/ 09 октября 2019

Ваш код:

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

Проверьте тип переменной даты.

type(date)
Out[]: str 

Это в строковом формате. Для выполнения операции вычитания вы должны сначала преобразовать ее в формат даты. Вы можете использовать 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)

output:

2019-06-29 00:00:00

Если вы хотите избавиться от отметки времени, вы можете использовать:

str(new_date.date())
Out[]: '2019-06-29'
0 голосов
/ 09 октября 2019

использовать timedelta

import datetime
date = datetime.datetime.strptime("06/30/19" ,"%m/%d/%y")
print( date - datetime.timedelta(days=1))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...