从号码获取月份名称

如何从月份号码中获取月份名称?

例如,如果我有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