TypeError: дескриптор 'strftime' требует объекта 'datetime.date', но получил 'Text' - программирование

TypeError: дескриптор 'strftime' требует объекта 'datetime.date', но получил 'Text'

У меня есть переменная testeddate, которая имеет дату в текстовом формате, таком как 4/25/2015. Я пытаюсь преобразовать его в %Y-%m-%d %H:%M:%S следующим образом:

dt_str = datetime.strftime(testeddate,'%Y-%m-%d %H:%M:%S')

но я столкнулся с этой ошибкой:

TypeError: descriptor 'strftime' requires a 'datetime.date' object but received a 'Text'

Как это разрешить?

4b9b3361

Ответ 1

У вас есть объект Text. Для функции strftime требуется объект datetime. В приведенном ниже коде делается промежуточный шаг преобразования Text в datetime с помощью strptime

import datetime
testeddate = '4/25/2015'
dt_obj = datetime.datetime.strptime(testeddate,'%m/%d/%Y')

В этот момент dt_obj является объектом datetime. Это означает, что мы можем легко преобразовать его в строку с любым форматом. В вашем конкретном случае:

dt_str = datetime.datetime.strftime(dt_obj,'%Y-%m-%d %H:%M:%S')

Теперь dt_str:

'2015-04-25 00:00:00'

Ответ 2

Менее элегантное решение предполагает непосредственное управление строкой.

testeddate = '4/25/2015'
month, day, year = testeddate.split('/')
testeddate = '-'.join([year, month, day]) + ' 00:00:00'