Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Python Dates and Times in Python (2014) Dates and Times strftime & strptime

Andrei Oprescu
Andrei Oprescu
9,547 Points

I have a problem.

I have a question like this:

Create a new function named from_string that takes two arguments: a date as a string and an strftime-compatible format string, and returns a datetime created from them.

And I have this code:

Create a new function named from_string that takes two arguments: a date as a string and an strftime-compatible format string, and returns a datetime created from them.

Can someone help me and tell me what I have done wrong?

Thanks

timestrings.py
## Examples
# to_string(datetime_object) => "24 September 2012"
# from_string("09/24/12 18:30", "%m/%d/%y %H:%M") => datetime
import datetime

def to_string(datetime_object):
    time = datetime_object.strftime('%d %B %Y')
    return time

def from_string('25 November 2015', '(2015, 9, 25, 0, 0, 0, 0)'):
    return strptime('25 November 2015', '%d %B %Y')

1 Answer

Hi there,

You have hard-coded the from_string method so it won't output any other dates when tested. The challenge will be passing two things into the method and expecting it to return a date in a particular format. Your method returns one date in one format.

To correct this, simply change your two parameters into variable names. You also need to include datetime.datetime before strptime. This all looks like:

def to_string(datetime_object):
    return datetime_object.strftime('%d %B %Y')

def from_string(date_string, fmt):
    return datetime.datetime.strptime(date_string, fmt)

I hope that makes sense.

Steve.