Considere las siguientes cumpleaños (como dob
):2 años dígitos usando strptime() no es capaz de analizar los cumpleaños muy bien
- 1-Jun-68
- 1-Jun-69
Si analizamos con Python de datetime.strptime(dob, '%d-%b-%y')
producirá:
datetime.datetime(2068, 6, 1, 0, 0)
datetime.datetime(1969, 6, 1, 0, 0)
Bueno, por supuesto que se supone que nacer en la misma década, pero ahora ni siquiera en el mismo siglo!
Según la docs Este comportamiento es perfectamente válido:
Cuando se aceptan año de 2 dígitos, que se convierten de acuerdo con la POSIX o X estándar/Open: 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 así, pero ¿hay alguna manera de evitar esto? ¿Tal vez con la definición de sus propios rangos para años de 2 dígitos?
es casi siempre una buena idea para hacer este tipo de pruebas de cordura. –
Buena respuesta: dependiendo de las situaciones de uso real para esto, restar 100 años para las fechas en el futuro es probablemente una buena manera de manejar los cumpleaños. –
Esto parece una respuesta sensata para mis necesidades. Gracias. – casr