Рассмотрим следующие дни рождения (как dob
):2 цифр года с использованием strptime() не способен разобрать дни рождения очень хорошо
- 1-Jun-68
- 1-Jun-69
Когда анализируется с Питона datetime.strptime(dob, '%d-%b-%y')
даст:
datetime.datetime(2068, 6, 1, 0, 0)
datetime.datetime(1969, 6, 1, 0, 0)
Ну конечно, они должны быть рождены в то же десятилетие, но теперь это даже не в том же веке!
Согласно docs это вполне допустимо поведение:
Когда принимаются 2-значные лет, они преобразуются в соответствии с в POSIX или X/Open стандарт: значения 69-99 отображаются в 1969 году -1999, и значения 0-68 отображаются в 2000-2068.
Я понимаю, почему функция настроена так, но есть ли способ обойти это? Возможно, с определением собственных диапазонов для двухзначных лет?
Это почти всегда хорошая идея, чтобы сделать этот вид тестирования здравомыслия. –
Хороший ответ - в зависимости от реальных ситуаций использования для этого, вычитая 100 лет для дат в будущем, вероятно, хороший способ справиться с днями рождения. –
Это кажется разумным ответом для моих нужд. Благодарю. – casr