Почему метод strptime из модуля datetime добавляет год, месяц и день, если в форматируемой строке их нет?

Всем привет. Есть такой код
from datetime import datetime

    print(datetime.strptime('23:14:44', '%H:%M:%S'))

вывод будет такой: datetime.datetime(1900, 1, 1, 23, 14, 44). Вопрос: откуда взялся год, месяц и день, если в указанном формате этого не было и как их убрать из вывода?
  • Вопрос задан
  • 89 просмотров
Решения вопроса 1
shurshur
@shurshur
Сисадмин, просто сисадмин...
У объекта datetime всегда есть год и всё остальное, by design. Если они не нужны - надо просто форматировать вывод без них явным образом.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Tomio
@Tomio
backend developer (python, php)
Вы используете объект "даты-время", что подразумевает, что у вас на выходе должна быть дата и должно быть время. А так как во входных данных у вас даты не обнаружено, то подставляется дата по умолчанию.
Чтобы вернуть объект времени вам нужно его извлечь из даты-времени:
print(datetime.strptime('23:14:44', '%H:%M:%S').time())
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы