#python #datetime
Вопрос:
Я считаю, что мне нужно преобразовать дату и время в строку, чтобы я мог включить эту переменную в свое линейное уравнение
now = datetime.datetime.now() x = datetime.datetime.strptime(now.astype(str).str[:10], '%Y-%m-%d').toordinal()
Я получаю эту ошибку:
Ошибка типа: аргумент strptime() 1 должен быть str, а не datetime.datetime
или
Ошибка значения: необращенные данные остаются: 18:17:27.424685, когда я пытаюсь
x = datetime.datetime.strptime(str(now), '%Y-%m-%d').toordinal()
или
Ошибка атрибута: объект «datetime.datetime» не имеет атрибута «astype», когда я пытаюсь
x = datetime.datetime.strptime(now.astype(str).str[:10], '%Y-%m-%d').toordinal()
Ответ №1:
strptime
это функция, которая преобразует строку в объект datetime, у вас уже есть объект datetime, и вы пытаетесь преобразовать его в строку и обратно в объект datetime, это не нужно.
Я предполагаю, что вы пытаетесь удалить компонент времени объекта datetime, чтобы получить порядковый номер даты, вам будет проще сделать это таким образом:
now.date().toordinal()
Но поскольку toordinal()
в любом случае игнорируется компонент времени, выполнение следующего приведет к тому же результату:
now.toordinal()
Комментарии:
1. отлично, это сработало