I am trying to write a function in Python 2.7 that converts a series of numbers into a valid date. So far, it all works apart form the conversion.
Here is the relevant code:
import datetime
def convert_date(x,y,z):
orig_date = datetime.datetime(x,y,z)
d = datetime.datetime.strptime(str(orig_date), '%Y-%m-%d %H:%M:%S')
result = d.strftime('%m-%d-%Y')
return orig_date
a = convert_date(13,11,12)
print a
Whenever I run this, I get:
> Traceback (most recent call last):
> File "test.py", line 9, in <module>
> a = convert_date(13,11,12)
> File "test.py", line 5, in convert_date
> d = datetime.datetime.strptime(orig_date, '%Y-%m-%d %H:%M:%S')
> TypeError: must be string, not datetime.datetime
I know that this is because strptime
gives me a datetime object
, but how do I get this to work?
For anyone who runs into this problem in the future I figured I might as well explain how I got this working.
Here is my code:
from datetime import datetime
def convert_date(x,y,z):
orig_date = datetime(x,y,z)
orig_date = str(orig_date)
d = datetime.strptime(orig_date, '%Y-%m-%d %H:%M:%S')
d = d.strftime('%m/%d/%y')
return d
As I should have figured out from the error message before I posted, I just needed to convert orig_date
to a string
before using strftime
.