получить 2 разных даты ввода от пользователя - PullRequest
2 голосов
/ 25 октября 2019

Я пытаюсь получить пользовательский ввод для двух разных дат, которые я передам другой функции.

def twodifferentdates():
    print("Data between 2 different dates")
    start_date = datetime.strptime(input('Enter Start Date in m/d/y format'), '%m&d&Y')
    end_date = datetime.strptime(input('Enter end date in m/d/y format'), '%m&d&Y')
    print(start_date)

twodifferentdates()

Я пробовал много разных способов ввода дат, но продолжаю получать

ValueError: данные времени '01 / 11/1987 'не соответствуют формату'% m & d & Y '

Я использовал тот же код, который обсуждался в: как мне получить ввод в формате даты и времени?

Любая помощь здесь будетбыть оцененным.

Ответы [ 3 ]

2 голосов
/ 25 октября 2019

Замените %m&d&Y на %m/%d/%Y, как описано в ссылочном сообщении.

0 голосов
/ 25 октября 2019

Я не очень разбираюсь в модуле datetime, но, похоже, ошибка заключается в том, как вы вводите данные. Вы должны принимать это так:

start_date = datetime.strptime(input('Enter Start Date in m/d/y format'), '%m &d &Y')

или

start_date = datetime.strptime(input('Enter Start Date in m/d/y format'), '%m/&d/&Y')
0 голосов
/ 25 октября 2019

datetime.strptime() требует, чтобы вы указывали формат, посимвольно, даты, которую вы хотите ввести. Для строки '01/11/1987' вы должны сделать

    datetime.strptime(..., '%m/%d/%Y')

, где %m - это "двузначный месяц", %d - это "двузначный день", а %Y - это "четырехзначный месяц". year "(в отличие от двузначного года %y. Эти значения разделены косой чертой.

См. также документацию datetime, в которой описано, как использовать strptime и strftime.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...