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 ?
Réponses
Trop de publicités?
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)
Bipul singh kashyap
Points
380
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