From e0d8ffb713bb2505fd6230c8f88fc66733eb516b Mon Sep 17 00:00:00 2001 From: Vincent Le Gallic Date: Fri, 25 May 2012 06:37:19 +0200 Subject: [PATCH] =?utf8?q?Avec=20la=20d=C3=A9pendancen,=20=C3=A7a=20risque?= =?utf8?q?=20de=20mieux=20marcher?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- cast_as_date.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 cast_as_date.py diff --git a/cast_as_date.py b/cast_as_date.py new file mode 100644 index 0000000..edf765b --- /dev/null +++ b/cast_as_date.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding:utf8 -*- + +# Codé par 20-100 le 25/05/12 + +# Module pour transformer une chaîne de caractère en une date selon pleins +# de formats possibles + +import time + +# pour comprendre les dates en français +import locale +locale.setlocale(locale.LC_ALL,'') +formats = [ +"%d/%m/%Y", # 25/05/2012 +"%d/%m/%y", # 25/05/12 +"%d %b %y", # 25 mai 12 (janv. févr. mars avril mail juin juil. août sept. oct. nov. déc.) +"%d %b %Y", # 25 mai 2012 +"%d %B %y", # idem mais cette fois le nom du mois en entier +"%d %B %Y", # avec l'année à 4 chiffres +"%Y-%m-%d", +"%y-%m-%d"] + +class ThisIsNotADate(Exception): + pass + +def cast_as_date(chain): + for format in formats: + try: + return time.strptime(chain,format) + except: + pass + raise ThisIsNotADate -- 2.39.2