回答:
import datetime
mydate = datetime.datetime.now()
mydate.strftime("%B")
返品:12月
[編集:@GiriBからのすばらしいコメント] %b
月名の短い表記を返すを使用することもできます。
mydate.strftime("%b")
上記の例では、を返しDec
ます。
mydate.strftime("%b")
月名の短い表記を返します。(上記の例では、返されますDec
)
現在の日付は関係ないため、特定の番号(1〜12)の月の名前だけを知る必要がある場合、これはそれほど役に立ちません。
calendar.month_name[i]
または
calendar.month_abbr[i]
ここでより便利です。
次に例を示します。
import calendar
for month_idx in range(1, 13):
print (calendar.month_name[month_idx])
print (calendar.month_abbr[month_idx])
print ("")
出力例:
January
Jan
February
Feb
March
Mar
...
month_name
とmonth_abbr
range(1, 13)
。出力で12か月すべてを取得できるように、例で使用することをお勧めします。
これは私が何をするかです:
from datetime import *
months = ["Unknown",
"January",
"Febuary",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"]
now = (datetime.now())
year = (now.year)
month = (months[now.month])
print(month)
出力:
>>> September
(これを書いたとき、これは本当の日付でした)
いくつかの良い 答えはすでにカレンダーを利用していますが、ロケールの設定の効果はまだ言及されていません。
たとえば、フランス語では:
import locale
import calendar
locale.setlocale(locale.LC_ALL, 'fr_FR')
assert calendar.month_name[1] == 'janvier'
assert calendar.month_abbr[1] == 'jan'
setlocale
コードでの使用を計画している場合は、ドキュメントのヒントと警告、および拡張ライターのセクションを必ずお読みください。ここに示されている例は、それがどのように使用されるべきかを表すものではありません。特に、次の2つのセクションから:
副作用としてプログラム全体に影響を与えるため、一般に、一部のライブラリルーチンでsetlocale()を呼び出すことはお勧めしません[…]
拡張モジュールはsetlocale()を呼び出すべきではありません[…]
calendar
です。テキストを更新できます。
8.1。datetime —基本的な日付と時刻のタイプ— Python 2.7.17ドキュメント https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior
すべてのstrftime引数のリスト。月の名前や書式設定などの便利な機能により、塗りつぶしがゼロになりました。「単純な」引数のルールなどについては、ページ全体をお読みください。これが簡単なリストです:%a日、月、…、土
%A日曜日、月曜日、…、土曜日
%w曜日を数値で、0は日曜日
%d日、01、02、…、31
%b 1月、2月、…、12月
%B 1月、2月、…、12月
%mゼロ詰めされた01、02、…、12としての月数
%y 2桁の年、ゼロ埋めされた00、01、…、99
%Y 4桁1970年、1988年、2001年、2013年
%H時間(24時間時計)ゼロ詰め00、01、…、23
%I時間(12時間時計)ゼロが埋め込まれた01、02、…、12
%p AMまたはPM。
%M分ゼロ詰め00、01、…、59
%S 2番目にゼロが埋め込まれた00、01、…、59
%fマイクロ秒ゼロ詰め000000、000001、…、999999
%z UTCオフセット+ HHMMまたは-HHMM + 0000、-0400、+ 1030の形式
%Zタイムゾーン名UTC、EST、CST
%j年間通算日、ゼロ詰め001、002、…、366
%Uゼロが埋め込まれた年の週番号、最初の日曜日より前の日は週0
%Wその年の週番号(月曜を初日とする)
%cロケールの日付と時刻の表現。1988年8月16日21:30:00
%xロケールの日付表現。1988年8月16日(en_US)
%Xロケールの時間表現。21:30:00
%%リテラル '%'文字。
数値を対応する月に変換する独自の関数を作成しました。
def month_name (number):
if number == 1:
return "January"
elif number == 2:
return "February"
elif number == 3:
return "March"
elif number == 4:
return "April"
elif number == 5:
return "May"
elif number == 6:
return "June"
elif number == 7:
return "July"
elif number == 8:
return "August"
elif number == 9:
return "September"
elif number == 10:
return "October"
elif number == 11:
return "November"
elif number == 12:
return "December"
その後、関数を呼び出すことができます。例えば:
print (month_name (12))
出力:
>>> December
calendar
モジュールにすでに存在しています。同じ結果を複製する独自の関数を作成することにはどのような利点がありますか?また、辞書は一連のelifステートメントよりもはるかに高速です。