Collectives™ on Stack Overflow
Find centralized, trusted content and collaborate around the technologies you use most.
Learn more about Collectives
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Learn more about Teams
I have a variable
testeddate
which has a date in text format like 4/25/2015. I am trying convert it to
%Y-%m-%d %H:%M:%S
as follows:
dt_str = datetime.strftime(testeddate,'%Y-%m-%d %H:%M:%S')
but I am running into this error:
TypeError: descriptor 'strftime' requires a 'datetime.date' object but received a 'Text'
How do I resolve this?
–
–
You have a Text
object. The strftime
function requires a datetime object. The code below takes an intermediate step of converting your Text
to a datetime
using strptime
import datetime
testeddate = '4/25/2015'
dt_obj = datetime.datetime.strptime(testeddate,'%m/%d/%Y')
At this point, the dt_obj
is a datetime object. This means we can easily convert it to a string with any format. In your particular case:
dt_str = datetime.datetime.strftime(dt_obj,'%Y-%m-%d %H:%M:%S')
The dt_str
now is:
'2015-04-25 00:00:00'
–
–
–
–
A less elegant solution would involve manipulating the string directly.
testeddate = '4/25/2015'
month, day, year = testeddate.split('/')
testeddate = '-'.join([year, month, day]) + ' 00:00:00'
The error message you're encountering, TypeError: descriptor 'strftime' requires a 'datetime.date' object but received a 'Text'
, indicates that the strftime
method is expecting a datetime.date
object, but you're providing it with a text string.
To resolve this, you first need to convert the text string into a datetime.date
object before using the strftime
method.
from datetime import datetime
testeddate = '4/25/2015'
# Convert the string to a datetime object i.e,
# converted to datetime.datetime(2015, 4, 25, 0, 0)
datetime_obj = datetime.strptime(testeddate, '%m/%d/%Y')
# Format the datetime object as a string
formatted_date = datetime_obj.strftime('%Y-%m-%d %H:%M:%S')
print(formatted_date)
This code will output:
2015-04-25 00:00:00
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.