0

我正在尝试使用 datetime 模块。我需要这个月作为 INT 回来,前面是零。以 01 表示 JAN,02 表示 FEB 等形式。我可以通过使用获得 1,

 today = date.today()
 m = today.month

我可以通过这种方式获得正确的格式,但不能作为 INT。

 today.strftime("%m")

有没有一种简单的方法来获得我需要的所需格式。我查看了参考资料,我确定我错过了它,但有人可以帮忙。

4

1 回答 1

5
'{:%m}'.format(datetime.datetime.now())

似乎工作。

当然,您可以采取不那么直接的方法:

'{:02d}'.format(datetime.datetime.now().month)

或者您可以使用旧式字符串插值:

'%02d' % (datetime.datetime.now().month)

但我喜欢第一个,因为我觉得它很酷......


最后,我看不出有什么问题.strftime......即使你说你试过了,它对我来说效果很好:

datetime.datetime.now().strftime('%m')

您正在寻找的是一个特殊的子类,int它知道在打印时如何“表示”自己:

 class MyInt(int):
     def __str__(self):
         return '%02d' % self

 a = MyInt(3)
 print (a)

但是,我绝对不建议使用这种方法,相反,当您需要将整数表示为字符串时,我会建议使用字符串格式化或字符串插值,就像我在上面对整数对象所做的那样。

于 2013-01-02T13:50:24.287 回答