python datetime提取两位数的月份和date值

有没有办法使用isoformats来提取月份和date? 假设今天的date是2013年3月8日。

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

我想要:

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

我可以通过编写if语句和连接前导0来做到这一点,以防日或月是一个单一的数字,但想知道是否有一个自动的方式来产生我想要的。

感谢帮助。

看看这些属性的types:

 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'> 

两者都是整数。 所以没有自动的方法去做你想做的事情。 所以在狭义上,对你的问题的答案是否定的

如果你想要引导零,你必须格式化他们。 为此你有几个select:

 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' 

您可以使用string格式化程序填充任何整数零。 它的行为就像C的printf

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