При вводе с клавиатуры, ошибка - ValueError: time data does not match format '%d.%m.%Y'
Сразу скажу,что на эту ошибку я нашёл немало вопросов и ответов здесь. Но не смог получить оттуда нужной для себя информации. Беру проблемный участок
def get_dateorder():
dateordd = input('Дата заказа книги(дд-мм-гггг): ')
dateord = time.strptime(dateordd,"%d.%m.%Y")
return dateord
Что хочу получить?
Ввожу дату с клавитауры, вот так 11121990 и хочу чтобы она у меня выводилась как 11.12.1990
А в итоге я после ввода получаю
ValueError: time data '11121990' does not match format '%d.%m.%Y'
Что я сделал для исправления?
Перед строкой с input() добавлял str, так как strptime() 1-ым аргументом содержит строку, но ошибка не исчезает.
Ниже представлены 2 варианта исправлений ошибки.
def get_dateorder():
dateord = str(input('Дата заказа книги(дд-мм-гггг): '))
return time.strptime(dateord,"%d.%m.%Y")
Решил уже добавить split чтобы разбить цифры,но ошибка не исчезает
def get_dateorder():
dateordd = input('Дата заказа книги(дд-мм-гггг): ')
dateordd = split('.')
dateord = time.strptime(dateordd,"%d.%m.%Y")
return dateord
Ответы (2 шт):
Вы вводите дату не в том формате.
import time
def get_dateorder():
dateordd = input('Дата заказа книги(дд.мм.гггг): ')
dateord = time.strptime(dateordd,"%d.%m.%Y")
return dateord
В input - 02.02.2020 (точки ставим с клавиатуры)
Все работает.
Если ввести 02022020 будет ошибка
Вы указали формат даты
%d.%m.%Y, а хотите, чтобы оно работало с вводом 11121990 ?
Поменяйте формат на '%d%m%Y' и все заработает.
def get_dateorder():
dateord = input('Дата заказа книги(ддммгггг): ')
return time.strptime(dateord,"%d%m%Y")
Или так:
def get_dateorder():
return time.strptime(input('Дата заказа книги(ддммгггг): '),"%d%m%Y")