Handling international dates in python

I have a date that is either formatted in German, for example,

2. Okt. 2009 

as well as possibly how

 2. Oct. 2009 

How to parse this event in ISO datetime (or python datetime ) format?

Solved using this snippet:

 for l in locale.locale_alias: worked = False try: locale.setlocale(locale.LC_TIME, l) worked = True except: worked = False if worked: print l 

And then plug in the corresponding l parameter in setlocale.

Can be analyzed using

 import datetime print datetime.datetime.strptime("09. Okt. 2009", "%d. %b. %Y") 
+4
source share
2 answers

http://docs.python.org/library/locale.html

The datetime module already knows the locale.

This is something like the following

 # German locale loc= locale.setlocale(locale.LC_TIME,("de","de")) try: date= datetime.date.strptime( input, "%d. %b. %Y" ) except: # English locale loc= locale.setlocale(locale.LC_TIME,("en","us")) date= datetime.date.strptime( input, "%d. %b. %Y" ) 
+9
source

A very minor point in your code snippet: I am not a python expert, but I would look at the entire flag to check for success +, silently swallowing all the exceptions to be bad.

try / expect / else does what you want in a cleaner way, I think:

 for l in locale.locale_alias: try: locale.setlocale(locale.LC_TIME, l) except locale.Error: # the doc says setlocale should throw this on failure pass else: print l 
+1
source

All Articles