Почему strptime () добавляет значение времени, даже если оно не указано?

У меня есть следующий код Python:

print (񟭔-02-09')
print(datetime.datetime.strptime(񟭔-02-09'], '%Y-%m-%d'))

который дает

2020-02-09
2020-02-09 00:00:00

Есть ли лучший выбор функций, который не возвращает количество секунд? Итак, как я могу сравнить два значения без оценки компонента времени? НАПРИМЕР:

if datetime.datetime.today().date() == datetime.datetime.strptime(񟭔-02-09'], '%Y-%m-%d'):

Для пояснения моя цель - сохранить дату (без значения времени) в качестве атрибута в файле JSON, а затем во время выполнения сравнить ее с datetime.now (). Date () или datetime.today (). Date ().

Всего 3 ответа


Как насчет:

from datetime import datetime as dt

if dt.today().date() == dt.strptime(񟭔-02-09', '%Y-%m-%d').date():

Обратите внимание на включение .date() завершающего второй операнд.


Вы можете просто сравнить часть даты в обеих функциях: просто добавьте date () в конце

datetime.datetime.strptime(񟭔-02-09', '%Y-%m-%d').date()

Я слишком много думал об этом, а также упустил возможность связать .date () с функцией. Спасибо за разъяснение этого для меня.

Вот то, что я решил пойти с:

#example date for JSON attribute
data['lastWritten'] = 񟭔-02-09'
if str(datetime.datetime.today().date()) == data['lastWritten']: 

Есть идеи?

10000