98 votes

datetime à partir de la chaîne en Python, format de chaîne le plus probable

La fonction pour obtenir une date/heure à partir d'une chaîne, datetime.strptime(date_string, format) nécessite un format de chaîne comme deuxième argument. Existe-t-il un moyen de créer une date/heure à partir d'une chaîne sans connaître le format exact et sans que Python le devine au mieux ?

31voto

Sandeep Points 5289

Peut s'en tirer avec une fonction simple si seulement la vérification par rapport aux dates.

 def get_date(s_date):
    date_patterns = ["%d-%m-%Y", "%Y-%m-%d"]

    for pattern in date_patterns:
        try:
            return datetime.datetime.strptime(s_date, pattern).date()
        except:
            pass

    print "Date is not in expected format: %s" %(s_date)
    sys.exit(0)

7voto

Vous pouvez utiliser datefinder, il détectera tous les types de style naturel de dates.

import datefinder # Module utilisé pour trouver différents styles de date avec l'heure

 string_value = " created 01/15/2005 by ACME inc.and associates.January 4th,2017 at 8pm"
matches = datefinder.find_dates(string_value)            
for match in matches:
    print("match found ",match)

Sortir

 match found  2005-01-15 00:00:00
match found  2017-01-04 20:00:00

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X