从号码获取月份名称
如何从月份号码中获取月份名称?
例如,如果我有3
,我想回到march
date.tm_month()
如何获得stringmarch
?
日历API
从这里你可以看到calendar.month_name[3]
会返回March
,数组索引0
是空string,所以不需要担心零索引。
import datetime mydate = datetime.datetime.now() mydate.strftime("%B")
返回: 十二月
关于Python doc网站的更多信息
[编辑:来自@GiriB的伟大的评论]你也可以使用%b
返回月份名称的简短表示法。
mydate.strftime("%b")
对于上面的例子,它将返回Dec
。
import datetime monthinteger = 4 month = datetime.date(1900, monthinteger, 1).strftime('%B') print month
四月
如果您只需要知道某个给定号码(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'
我会提供这种情况下(像我一样)你有一个数据框中的月份数列:
df['monthName'] = df['monthNumer'].apply(lambda x: calendar.month_name[x])
这是我会做的事情:
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
(这是我写的这个真实的date)
我创build了自己的函数转换为相应的月份的数字。
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