2015-06-26 2 views
-1

Я использую CPython. Это код:Python: strptime() форматирование

import datetime 
userBirthday = print("Enter your birthday(DD/MM/YYYY): ") 
compBirthday = datetime.datetime.strptime(userBirthday, "%d/%b/%Y") 

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

ValueError: time data '13/12/2001' does not match format '%d/%b%Y' 
+0

'% b' предназначен для сокращений типа« Jun »,« Apr ». Прочтите документы, все там. – mehtunguh

ответ

1

Вы хотели вместо этого:

datetime.datetime.strptime(userBirthday, "%d/%m/%Y") 

Где м означает "месяц".

Кроме того, выписка dateutil.parser.parse, которая может распознавать самые разные форматы.

+0

Спасибо, сэр! Вы спасатель жизни. Когда я начал изучать Python 3,% b был на месяц, потому что% m было зарезервировано на несколько минут. Еще раз спасибо! – Alkemyk

+0

Я буду принимать ваш answe завтра, потому что мне нужно подождать 6 минут, и очень поздно в моей стране. – Alkemyk

+0

@Alkemyk: '% b' означает то же самое в Python 3 - [month abbr., Not number] (https://docs.python.org/3/library/datetime.html#strftime-and-strptime- поведение). Минуты: '% M' (верхний регистр),'% m' (строчный) - всегда номер месяца. – jfs

Смежные вопросы