Considérez les anniversaires suivants (comme dob
):2 ans chiffres à l'aide strptime() ne sont pas en mesure d'analyser les anniversaires très bien
- 1-juin-68
- 1-juin-69
avec Python Si on analyse de datetime.strptime(dob, '%d-%b-%y')
donnera:
datetime.datetime(2068, 6, 1, 0, 0)
datetime.datetime(1969, 6, 1, 0, 0)
Mais bien sûr qu'ils sont censés être nés dans la même décennie, mais maintenant il est même pas dans le même siècle!
Selon le docs ce comportement est parfaitement valable:
Quand sont acceptés, ils sont convertis années à 2 chiffres selon la norme POSIX ou X/Open: Les valeurs 69-99 sont mises en correspondance à 1969 -1999, et les valeurs 0-68 sont mappées à 2000-2068.
Je comprends pourquoi la fonction est configurée comme ceci, mais y a-t-il un moyen de contourner ce problème? Peut-être avec la définition de vos propres plages pour les années à deux chiffres?
Il est presque toujours une bonne idée de faire ce genre de tests de santé mentale. –
Bonne réponse - en fonction des situations d'utilisation réelles, soustraire 100 ans pour les dates dans le futur est probablement un bon moyen de gérer les anniversaires. –
Cela semble une réponse saine pour mes besoins. Merci. – casr