アイソフォーマットを使用して月と日を抽出する方法はありますか?今日の日付が2013年3月8日であるとします。
>>> d = datetime.date.today()
>>> d.month
3
>>> d.day
8
が欲しいです:
>>> d = datetime.date.today()
>>> d.month
03
>>> d.day
08
これを行うには、ifステートメントを記述し、日または月が1桁の場合に先頭の0を連結しますが、必要なものを自動的に生成する方法があるかどうか疑問に思っていました。
これらのプロパティのタイプを見てください:
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'>
両方とも整数です。したがって、automaticしたいことをする方法はありません。狭い意味では、あなたの質問に対する答えはnoです。
先行ゼロが必要な場合は、何らかの方法でフォーマットする必要があります。そのためには、いくつかのオプションがあります。
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'
文字列フォーマッターを使用して、任意の整数にゼロを埋め込むことができます。 Cのprintf
と同じように機能します。
>>> d = datetime.date.today()
>>> '%02d' % d.month
'03'
py36:用に更新済み f文字列を使用!一般的なint
sの場合、d
フォーマッターを使用して、ゼロでパディングするように明示的に指示できます。
>>> d = datetime.date.today()
>>> f"{d.month:02d}"
'07'
ただし、datetime
sは特別であり、すでにゼロが埋め込まれた特別なフォーマッタが付属しています。
>>> f"{d:%d}" # the day
'01'
>>> f"{d:%m}" # the month
'07'