Ray Allen wrote: > I would like Python to convert a date returned by MySQL (2006-04-05) to a > user readable format such as 05-Apr-2006 for display and then to convert it > back to ISO format for update.
Here's one way: In [1]: from datetime import date In [2]: data = '2006-04-05' Use split() and int() to convert to a list of year, month, day In [4]: ymd = map(int, data.split('-')) In [5]: ymd Out[5]: [2006, 4, 5] Turn it into a date. The * makes the list act like individual parameters. In [6]: d=date(*ymd) In [7]: d Out[7]: datetime.date(2006, 4, 5) See the docs for the time module for info about strftime() format codes In [8]: d.strftime('%d-%b-%Y') Out[8]: '05-Apr-2006' ISO format is built-in. In [9]: d.isoformat() Out[9]: '2006-04-05' For other input formats you might have to use time.strptime() to convert to a time tuple, then pass the first three elements do date(): In [10]: import time In [15]: t=time.strptime(data, '%Y-%m-%d') In [16]: t Out[16]: (2006, 4, 5, 0, 0, 0, 2, 95, -1) In [17]: date(*t[:3]) Out[17]: datetime.date(2006, 4, 5) Kent _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor