Os anos de 2 dígitos usando strptime () não conseguem analisar muito bem os aniversários
Considere os seguintes aniversários (comodob
):
Quando analisado com o Pythondatetime.strptime(dob, '%d-%b-%y')
produzirá:
datetime.datetime(2068, 6, 1, 0, 0)
datetime.datetime(1969, 6, 1, 0, 0)
Bem, é claro que eles deveriam nascer na mesma década, mas agora nem no mesmo século!
De acordo comdocs este é um comportamento perfeitamente válido:
Quando anos de 2 dígitos são aceitos, eles são convertidos de acordo com o padrão POSIX ou X / Open: os valores 69-99 são mapeados para 1969-1999 e os valores de 0 a 68 são mapeados para 2000 a 2068.
Entendo por que a função é configurada dessa maneira, mas existe uma maneira de contornar isso? Talvez com a definição de seus próprios intervalos para anos de 2 dígitos?