Разный формат вывода даты datetime. Python
При вызове date.today() получается дата в формате: 2022-04-14.
При вызове date.today().month мы получаем номер месяца в формате: 4.
Как получить число или месяц в формате 04, для сравнения с числами в бд через strftime('%m')
from datetime import date
today = date.today()
print(today) # 2022-04-09
print(today.year, today.month, today.day) # 2022 4 9, а нужно 04 и 09
Ответы (2 шт):
Автор решения: Andy Pavlov
→ Ссылка
Это связано с тем, что выводится в первом случае строка в формате ISO через метод:
def isoformat(self):
...
return "%04d-%02d-%02d" % (self._year, self._month, self._day)
А для второго случая целые числа. В этом случае Вы можете сами отформатировать вывод:
month = f"{today.month:02d}"
Автор решения: ganz
→ Ссылка
Причина в том, что today возвращает строку, которая может начинаться с нуля, а month возвращает число, ноль перед которым не имеет смысла. Можно исспользовать форматирование строк.
today = date.today()
print(today) # 2022-04-09
print(today.year, '{0:0>2}'.format(today.month), today.day)
'''
2022-04-14
2022 04 14
'''