Possible Duplicate:
How to print date in a regular format in Python?
I would like to know how to convert the following date to natural language, including time zone in python?
input:
"'2012-09-27T02:00:00Z'"
expected output:
Wednesday, September 26 of 2012 Mountain Time
Thanks in advance!
Note Edit:
So far I tried django humanize, although it doesn’t handle very well complex date-time strings.
Solution:
Thanks for all the information. I ended up parsing the original string and using pitz and strftime like this:
my_date = '2012-09-27T02:00:00Z'
utc_date_object = datetime(int(my_date[0:4]), int(my_date[5:7]), int(my_date[8:10]),int(my_date[11:13]),int(my_date[14:16]),int(my_date[17:19]),0,pytz.utc)
mt_date_object = utc_date_object.replace(tzinfo=pytz.utc).astimezone(pytz.timezone('US/Mountain'))
natural_date = mt_date_object.strftime("%A, %B %d of %Y")
Output:
'Wednesday, September 26 of 2012'
The Babel project offers a full-featured date and time localization library.
You’ll also need the
iso8601module to parse a date-time string with a timezone correctly.It either formats dates and times based on locale:
or it let’s you specify the format in detail. This includes formatting the timezone.
Putting the parser and the formatter together:
Ordinals (‘1st’, ‘2nd’, etc.) are a little harder to do internationally, and the LDML format used by Babel doesn’t include a pattern for these.
If you must have an ordinal in your date formatting (perhaps because you only expect to output in English), you’ll have to create those yourself: