Returning a date as string

7stud bbxx789_05ss at yahoo.com
Sat Apr 21 18:24:09 EDT 2007


On Apr 21, 2:59 pm, Björn Keil <abgr... at silberdrache.net> wrote:
> Hello pythons,
>
> I have little problem with understanding conversions in python. I've
> written a little class - nothing much, just to try out Python a little
> - containing the following method:
>
>     def __repr__(self):
>         """Serializes the note.
>
>         Currently the format of notes isn't decided upon. XML output
> is
>         projected."""
>         return "Due: " + str(self.dateDue) + \
>                "\nDate: " + str(self.dateCreated) + \
>                "\nSubject: " + self.subject + \
>                "\n" + self.content
>
> The fields "dateDue" and "dateCreated" contain datetime.date objects.
> Now when I try to serialize the whole thing:
>
> >>> myNote
>
> Traceback (most recent call last):
>   File "<stdin>", line 1, in ?
>   File "notes.py", line 81, in __repr__
>     return "Due: " + str(self.dateDue) + \
> TypeError: cannot concatenate 'str' and 'datetime.date' objects
>
> I tryed different variant before I wrapped "self.dateDue" in a str()
> constructor:
> I tried to put it in brackets, or call its .isoformat() method.
> Nothing works. It still complains that I was trying to concatenate a
> string with a date, but I really wanna concatenate a string with a
> string!
>
> Could anyone please tell me what I am doing wrong?
>
> Greetings,
> Björn

This works for me:

import datetime

class MyDate(object):
    def __init__(self, date):
        self.d = date
    def __repr__(self):
        return str(self.d)

md = MyDate(datetime.date.today())
print "the result is: " + repr(md)

##output:    the result is: 2007-04-21




More information about the Python-list mailing list