Los años de 2 dígitos que usan strptime () no pueden analizar muy bien los cumpleaños
Considere los siguientes cumpleaños (comodob
):
Cuando se analiza con Pythondatetime.strptime(dob, '%d-%b-%y')
rendirá:
datetime.datetime(2068, 6, 1, 0, 0)
datetime.datetime(1969, 6, 1, 0, 0)
Bueno, por supuesto, se supone que nacieron en la misma década, ¡pero ahora ni siquiera en el mismo siglo!
De acuerdo con ladocs Este es un comportamiento perfectamente válido:
Cuando se aceptan años de 2 dígitos, se convierten de acuerdo con el estándar POSIX o X / Open: los valores 69-99 se asignan a 1969-1999, y los valores 0-68 se asignan a 2000-2068.
Entiendo por qué la función está configurada de esta manera, pero ¿hay alguna manera de evitar esto? ¿Quizás con la definición de sus propios rangos para años de 2 dígitos?