0

datetime モジュールを使用しようとしています。ゼロを前にしてINTとして戻ってくる月が必要です。JANなら01、FEBなら02などの形で、

 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 に答える