Почему strptime () добавляет значение времени, даже если оно не указано? - PullRequest
0 голосов
/ 09 февраля 2020

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

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

, который дает

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

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

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

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

Ответы [ 3 ]

1 голос
/ 09 февраля 2020

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

datetime.datetime.strptime('2020-02-09', '%Y-%m-%d').date()
1 голос
/ 09 февраля 2020

Как насчет:

from datetime import datetime as dt

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

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

0 голосов
/ 09 февраля 2020

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

Вот что я решил go с:

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