Я получил следующую ошибку:

ValueError: time data 'M/D/Y' does not match format '%m/%d/%Y'

Но я не мог понять, где проблема ... Вот мой код

def day(M, D, Y):
    day = datetime.datetime.strptime('M/D/Y', '%m/%d/%Y').strftime('%A')
    return day

Я пытался использовать day(1, 12, 2017) и day(01, 12, 2017) в течение месяца, но когда я использовал 01, я получил новую ошибку:

SyntaxError: invalid token
0
aRandomStudent 13 Янв 2017 в 02:39

3 ответа

Лучший ответ

По твоей линии,

day = datetime.datetime.strptime('M/D/Y', '%m/%d/%Y').strftime('%A')

'M/D/Y' - это просто строка, вы можете использовать str.format, например так

day = datetime.datetime.strptime('{0}/{1}/{2}'.format(M, D, Y), '%m/%d/%Y').strftime('%A')
1
Jason 12 Янв 2017 в 23:43
day = datetime.datetime.strptime('12/22/2017', '%m/%d/%Y').strftime('%A')
0
Joran Beasley 12 Янв 2017 в 23:41

Вы неправильно используете параметры своей функции.

Параметры M, D и Y должны использоваться для построения строки, поэтому (1, 12, 2017) становится 1/12/2017: < Код > day = datetime.datetime.strptime ('{0} / {1} / {2}'. format (M, D, Y), '% m /% d /% Y'). strftime ('% A')

1
rtkaleta 12 Янв 2017 в 23:44