Подтвердить что ты не робот

Python datetime извлекает двузначные значения месяца и дня

Есть ли способ извлечь месяц и день с помощью изоформатов? Предположим, что сегодняшний день - 8 марта 2013 года.

>>> d = datetime.date.today()
>>> d.month
3
>>> d.day
8

Я хочу:

>>> d = datetime.date.today()
>>> d.month
03
>>> d.day
08

Я могу сделать это, написав операторы и конкатенацию ведущего 0 в случае, если день или месяц - это одна цифра, но задавался вопросом, был ли автоматический способ генерации того, что я хочу.

Оцените справку.

4b9b3361

Ответ 1

Посмотрите на типы этих свойств:

In [1]: import datetime

In [2]: d = datetime.date.today()

In [3]: type(d.month)
Out[3]: <type 'int'>

In [4]: type(d.day)
Out[4]: <type 'int'>

Оба являются целыми числами. Таким образом, нет автоматического способа делать то, что вы хотите. Поэтому в узком смысле ответ на ваш вопрос нет.

Если вам нужны ведущие нули, вам придется форматировать их так или иначе. Для этого у вас есть несколько вариантов:

In [5]: '{:02d}'.format(d.month)
Out[5]: '03'

In [6]: '%02d' % d.month
Out[6]: '03'

In [7]: d.strftime('%m')
Out[7]: '03'

Ответ 2

вы можете использовать форматирование строк для заполнения любого целого с нулями. Он действует так же, как C printf.

>>> d = datetime.date.today()
>>> '%02d' % d.month
'03'