R dispose d'un flux de travail très agréable qui permet à l'utilisateur de définir l'ordre date/mois/année, mais qui gère autrement le désordre des chaînes de dates saisies par l'utilisateur :
date_str = c('05/03/2022', '14/03/2022', '14.03.2022', '14/03.2022')
lubridate::parse_date_time(date_str, orders = 'dmy')
#> [1] "2022-03-05 UTC" "2022-03-14 UTC" "2022-03-14 UTC" "2022-03-14 UTC"
Le plus proche que j'ai trouvé en Python est :
from dateparser import parse
date_str = ['05/03/2022', '14/03/2022', '14.03.2022', '14/03.2022']
list(map(lambda l: parse(l, date_formats = ['dmy']), date_str))
[datetime.datetime(2022, 5, 3, 0, 0),
datetime.datetime(2022, 3, 14, 0, 0),
datetime.datetime(2022, 3, 14, 0, 0),
datetime.datetime(2022, 3, 14, 0, 0)]
qui gère le désordre mais transpose le jour/mois dans la première observation, je pense parce que date_formats
donne la priorité aux formats explicitement définis et revient sinon au format (stupide) par défaut US mois-jour-année ?
Existe-t-il une bonne implémentation en Python qui permette de gérer le désordre et d'assumer un ordre date/mois ?