月番号から月名を取得するにはどうすればよいですか?
たとえば、3
がある場合、march
を返したい
date.tm_month()
文字列march
を取得する方法は?
これから、calendar.month_name[3]
がMarch
を返し、0
の配列インデックスが空の文字列であることがわかります。したがって、ゼロインデックス付けについて心配する必要もありません。
import datetime
mydate = datetime.datetime.now()
mydate.strftime("%B")
戻り値:December
Python doc website の詳細情報
[編集:@GiriBからのすばらしいコメント]月名の短い表記を返す%b
を使用することもできます。
mydate.strftime("%b")
上記の例では、Dec
を返します。
import datetime
monthinteger = 4
month = datetime.date(1900, monthinteger, 1).strftime('%B')
print month
4月
現在の日付は重要ではないため、特定の番号の月名(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
...
import datetime
mydate = datetime.datetime.now()
mydate.strftime("%B") # 'December'
mydate.strftime("%b") # 'dec'
これは私がすることです:
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
(これは私がこれを書いた本当の日付でした)
(私のように)データフレームに月番号の列がある場合にこれを提供します:
df['monthName'] = df['monthNumer'].apply(lambda x: calendar.month_name[x])
月数の任意の範囲
month_integer=range(0,100)
map(lambda x: calendar.month_name[x%12+start],month_integer)
正しいリストが生成されます。月の整数リストで1月が始まる場所からstart
name __- parameterを調整します。